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>
This commit is contained in:
parent
830ffa09fb
commit
f23c40443d
@ -14,6 +14,7 @@
|
|||||||
#include "xfs_inode.h"
|
#include "xfs_inode.h"
|
||||||
#include "xfs_quota.h"
|
#include "xfs_quota.h"
|
||||||
#include "xfs_qm.h"
|
#include "xfs_qm.h"
|
||||||
|
#include "xfs_bmap.h"
|
||||||
#include "scrub/scrub.h"
|
#include "scrub/scrub.h"
|
||||||
#include "scrub/common.h"
|
#include "scrub/common.h"
|
||||||
|
|
||||||
@ -189,11 +190,12 @@ xchk_quota_data_fork(
|
|||||||
for_each_xfs_iext(ifp, &icur, &irec) {
|
for_each_xfs_iext(ifp, &icur, &irec) {
|
||||||
if (xchk_should_terminate(sc, &error))
|
if (xchk_should_terminate(sc, &error))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* delalloc extents or blocks mapped above the highest
|
* delalloc/unwritten extents or blocks mapped above the highest
|
||||||
* quota id shouldn't happen.
|
* 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 > max_dqid_off ||
|
||||||
irec.br_startoff + irec.br_blockcount - 1 > max_dqid_off) {
|
irec.br_startoff + irec.br_blockcount - 1 > max_dqid_off) {
|
||||||
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK,
|
xchk_fblock_set_corrupt(sc, XFS_DATA_FORK,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user