From: Darrick J. Wong Date: Mon, 29 Jul 2024 23:23:28 +0000 (-0700) Subject: xfs_scrub: fix erroring out of check_inode_names X-Git-Tag: v6.10.0~5^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1fe7d5ef7a0b47e375f7a51d502f574f9ad8811a;p=thirdparty%2Fxfsprogs-dev.git xfs_scrub: fix erroring out of check_inode_names The early exit logic in this function is a bit suboptimal -- we don't need to close the @fd if we haven't even opened it, and since all errors are fatal, we don't need to bump the progress counter. The logic in this function is about to get more involved due to the addition of the directory tree structure checker, so clean up these warts. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig --- diff --git a/scrub/phase5.c b/scrub/phase5.c index 0df8c46e..b3719627 100644 --- a/scrub/phase5.c +++ b/scrub/phase5.c @@ -279,7 +279,7 @@ check_inode_names( if (bstat->bs_xflags & FS_XFLAG_HASATTR) { error = check_xattr_names(ctx, &dsc, handle, bstat); if (error) - goto out; + goto err; } /* @@ -295,16 +295,16 @@ check_inode_names( if (error == ESTALE) return ESTALE; str_errno(ctx, descr_render(&dsc)); - goto out; + goto err; } error = check_dirent_names(ctx, &dsc, &fd, bstat); if (error) - goto out; + goto err_fd; } -out: progress_add(1); +err_fd: if (fd >= 0) { err2 = close(fd); if (err2) @@ -312,7 +312,7 @@ out: if (!error && err2) error = err2; } - +err: if (error) *aborted = true; if (!error && *aborted)