Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c47b74fb authored by Darrick J. Wong's avatar Darrick J. Wong
Browse files

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: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
parent 70c57dcd
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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;
	}