From: Darrick J. Wong Date: Tue, 23 Jan 2018 19:17:47 +0000 (-0800) Subject: xfs: don't clobber inobt/finobt cursors when xref with rmap X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=c47b74fb2dba46642fc9c2581a28893b42a42815;p=openwrt%2Fstaging%2Fblogic.git xfs: don't clobber inobt/finobt cursors when xref with rmap Even if we can't use the inobt/finobt cursors to count the number of inode btree blocks, we are never allowed to clobber the cursor of the btree being checked, so don't do this. Found by fuzzing level = ones in xfs/364. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig --- diff --git a/fs/xfs/scrub/ialloc.c b/fs/xfs/scrub/ialloc.c index 21c850abbafd..63ab3f98430d 100644 --- a/fs/xfs/scrub/ialloc.c +++ b/fs/xfs/scrub/ialloc.c @@ -391,12 +391,12 @@ xfs_scrub_iallocbt_xref_rmap_btreeblks( /* Check that we saw as many inobt blocks as the rmap says. */ error = xfs_btree_count_blocks(sc->sa.ino_cur, &inobt_blocks); - if (!xfs_scrub_should_check_xref(sc, &error, &sc->sa.ino_cur)) + if (!xfs_scrub_process_error(sc, 0, 0, &error)) return; if (sc->sa.fino_cur) { error = xfs_btree_count_blocks(sc->sa.fino_cur, &finobt_blocks); - if (!xfs_scrub_should_check_xref(sc, &error, &sc->sa.fino_cur)) + if (!xfs_scrub_process_error(sc, 0, 0, &error)) return; }