)]}'
{
  "commit": "5fd364fee81a7888af806e42ed8a91c845894f2d",
  "tree": "867d4c1848bc517c8d58662d432a5e272e6ca2b4",
  "parents": [
    "67dc288c21064b31a98a53dc64f6b9714b819fd6"
  ],
  "author": {
    "name": "Dave Chinner",
    "email": "dchinner@redhat.com",
    "time": "Mon Aug 04 12:43:26 2014 +1000"
  },
  "committer": {
    "name": "Dave Chinner",
    "email": "david@fromorbit.com",
    "time": "Mon Aug 04 12:43:26 2014 +1000"
  },
  "message": "xfs: quotacheck leaves dquot buffers without verifiers\n\nWhen running xfs/305, I noticed that quotacheck was flushing dquot\nbuffers that did not have the xfs_dquot_buf_ops verifiers attached:\n\nXFS (vdb): _xfs_buf_ioapply: no ops on block 0x1dc8/0x1dc8\nffff880052489000: 44 51 01 04 00 00 65 b8 00 00 00 00 00 00 00 00  DQ....e.........\nffff880052489010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\nffff880052489020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\nffff880052489030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\nCPU: 1 PID: 2376 Comm: mount Not tainted 3.16.0-rc2-dgc+ #306\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011\n ffff88006fe38000 ffff88004a0ffae8 ffffffff81cf1cca 0000000000000001\n ffff88004a0ffb88 ffffffff814d50ca 000010004a0ffc70 0000000000000000\n ffff88006be56dc4 0000000000000021 0000000000001dc8 ffff88007c773d80\nCall Trace:\n [\u003cffffffff81cf1cca\u003e] dump_stack+0x45/0x56\n [\u003cffffffff814d50ca\u003e] _xfs_buf_ioapply+0x3ca/0x3d0\n [\u003cffffffff810db520\u003e] ? wake_up_state+0x20/0x20\n [\u003cffffffff814d51f5\u003e] ? xfs_bdstrat_cb+0x55/0xb0\n [\u003cffffffff814d513b\u003e] xfs_buf_iorequest+0x6b/0xd0\n [\u003cffffffff814d51f5\u003e] xfs_bdstrat_cb+0x55/0xb0\n [\u003cffffffff814d53ab\u003e] __xfs_buf_delwri_submit+0x15b/0x220\n [\u003cffffffff814d6040\u003e] ? xfs_buf_delwri_submit+0x30/0x90\n [\u003cffffffff814d6040\u003e] xfs_buf_delwri_submit+0x30/0x90\n [\u003cffffffff8150f89d\u003e] xfs_qm_quotacheck+0x17d/0x3c0\n [\u003cffffffff81510591\u003e] xfs_qm_mount_quotas+0x151/0x1e0\n [\u003cffffffff814ed01c\u003e] xfs_mountfs+0x56c/0x7d0\n [\u003cffffffff814f0f12\u003e] xfs_fs_fill_super+0x2c2/0x340\n [\u003cffffffff811c9fe4\u003e] mount_bdev+0x194/0x1d0\n [\u003cffffffff814f0c50\u003e] ? xfs_finish_flags+0x170/0x170\n [\u003cffffffff814ef0f5\u003e] xfs_fs_mount+0x15/0x20\n [\u003cffffffff811ca8c9\u003e] mount_fs+0x39/0x1b0\n [\u003cffffffff811e4d67\u003e] vfs_kern_mount+0x67/0x120\n [\u003cffffffff811e757e\u003e] do_mount+0x23e/0xad0\n [\u003cffffffff8117abde\u003e] ? __get_free_pages+0xe/0x50\n [\u003cffffffff811e71e6\u003e] ? copy_mount_options+0x36/0x150\n [\u003cffffffff811e8103\u003e] SyS_mount+0x83/0xc0\n [\u003cffffffff81cfd40b\u003e] tracesys+0xdd/0xe2\n\nThis was caused by dquot buffer readahead not attaching a verifier\nstructure to the buffer when readahead was issued, resulting in the\nfollowup read of the buffer finding a valid buffer and so not\nattaching new verifiers to the buffer as part of the read.\n\nAlso, when a verifier failure occurs, we then read the buffer\nwithout verifiers. Attach the verifiers manually after this read so\nthat if the buffer is then written it will be verified that the\ncorruption has been repaired.\n\nFurther, when flushing a dquot we don\u0027t ask for a verifier when\nreading in the dquot buffer the dquot belongs to. Most of the time\nthis isn\u0027t an issue because the buffer is still cached, but when it\nis not cached it will result in writing the dquot buffer without\nhaving the verfier attached.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Brian Foster \u003cbfoster@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Dave Chinner \u003cdavid@fromorbit.com\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8a44a79f49afa35dcd8a9e6609410b2ae945ba80",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_dquot.c",
      "new_id": "63c2de49f61de1782e066156dbec263addcfbbec",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_dquot.c"
    },
    {
      "type": "modify",
      "old_id": "ba284f6469db33eb7ea0be5d5a70cf78d2f9713b",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_qm.c",
      "new_id": "e261547717b760b555207da44de95d8dbd979558",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_qm.c"
    }
  ]
}
