]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs_scrub: fix erroring out of check_inode_names
authorDarrick J. Wong <djwong@kernel.org>
Tue, 9 Jan 2024 17:39:30 +0000 (09:39 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 10 Apr 2024 00:21:32 +0000 (17:21 -0700)
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 <djwong@kernel.org>
scrub/phase5.c

index 0df8c46e9f5bf0d211f5c4e1fb5abe1e30cb1c8c..b3719627755485c2fde37121e49dd8db8b9f8745 100644 (file)
@@ -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)