From 13061b87772599c00152006a2ffb65a4536a9560 Mon Sep 17 00:00:00 2001 From: Eric Sandeen Date: Thu, 8 Sep 2016 10:22:18 +1000 Subject: [PATCH] xfs_db: properly set dquot_buf when operating on dquot The earlier commit: 66a40d02 db: verify and calculate dquot CRCs added a "dquot_buf" to the iocur to specify when we were operating on a dquot and thus handle dquot CRC updates - but nothing ever actually set dquot_buf to a non-zero value. Without doing so, we don't recalculate the dquot crc when changing contents of a dquot: # xfs_db -x -c "dquot -u 500" -c "p crc" -c "write diskdq.bcount 2" \ -c "p crc" crctestfile crc = 0xfd293c68 (correct) diskdq.bcount = 2 crc = 0xfd293c68 (correct) [ the "(correct)" tag is another, different issue ] # xfs_db -x -c "dquot -u 500" -c "p crc" crctestfile Metadata CRC error detected at xfs_dquot block 0xd8/0x1000 crc = 0xfd293c68 (bad) With this change, dquot CRCs are properly recalculated in write_cur. Signed-off-by: Eric Sandeen Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner --- db/dquot.c | 1 + 1 file changed, 1 insertion(+) diff --git a/db/dquot.c b/db/dquot.c index 47740f0a6..061eca5df 100644 --- a/db/dquot.c +++ b/db/dquot.c @@ -164,6 +164,7 @@ dquot_f( } set_cur(&typtab[TYP_DQBLK], XFS_FSB_TO_DADDR(mp, bm.startblock), blkbb, DB_RING_IGN, NULL); + iocur_top->dquot_buf = 1; off_cur(qoff * (int)sizeof(xfs_dqblk_t), sizeof(xfs_dqblk_t)); ring_add(); return 0; -- 2.47.2