diff options
author | 2022-11-06 17:03:21 -0800 | |
---|---|---|
committer | 2022-11-16 15:25:04 -0800 | |
commit | f23c40443d1c2af87c99c1424f9e43bbd7307f92 (patch) | |
tree | e6ed30975410c8577a8943e4a8592dbd868e8aae /fs/xfs/scrub | |
parent | xfs: block map scrub should handle incore delalloc reservations (diff) | |
download | linux-f23c40443d1c2af87c99c1424f9e43bbd7307f92.tar.gz linux-f23c40443d1c2af87c99c1424f9e43bbd7307f92.tar.bz2 linux-f23c40443d1c2af87c99c1424f9e43bbd7307f92.zip |
xfs: check quota files for unwritten extents
Teach scrub to flag quota files containing unwritten extents.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Diffstat (limited to 'fs/xfs/scrub')
-rw-r--r-- | fs/xfs/scrub/quota.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/xfs/scrub/quota.c b/fs/xfs/scrub/quota.c index 0b643ff32b22..9eeac8565394 100644 --- a/fs/xfs/scrub/quota.c +++ b/fs/xfs/scrub/quota.c @@ -14,6 +14,7 @@ #include "xfs_inode.h" #include "xfs_quota.h" #include "xfs_qm.h" +#include "xfs_bmap.h" #include "scrub/scrub.h" #include "scrub/common.h" @@ -189,11 +190,12 @@ xchk_quota_data_fork( for_each_xfs_iext(ifp, &icur, &irec) { if (xchk_should_terminate(sc, &error)) break; + /* - * delalloc extents or blocks mapped above the highest + * delalloc/unwritten extents or blocks mapped above the highest * quota id shouldn't happen. */ - if (isnullstartblock(irec.br_startblock) || + if (!xfs_bmap_is_written_extent(&irec) || irec.br_startoff > max_dqid_off || irec.br_startoff + irec.br_blockcount - 1 > max_dqid_off) { xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, |