diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2019-10-16 22:35:25 -0400 |
---|---|---|
committer | Eric Sandeen <sandeen@sandeen.net> | 2019-10-16 22:35:25 -0400 |
commit | f0bbbd722f4345645977b6c129de87db69b9ae8d (patch) | |
tree | 3ef3fa1be28fba15bdd6f677d53cc471c2a65846 /scrub | |
parent | 8808a003cd8ce5014e31032c26e5f4f8efff21dc (diff) | |
download | xfsprogs-dev-f0bbbd722f4345645977b6c129de87db69b9ae8d.tar.gz |
xfs_scrub: move all the queue_subdir error reporting to callers
Change queue_subdir to return a positive error code to callers and move
the error reporting to the callers. This continues the process of
changing internal functions to return error codes.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Diffstat (limited to 'scrub')
-rw-r--r-- | scrub/vfs.c | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/scrub/vfs.c b/scrub/vfs.c index 49d689af8f..e0bc3ea436 100644 --- a/scrub/vfs.c +++ b/scrub/vfs.c @@ -72,7 +72,7 @@ dec_nr_dirs( } /* Queue a directory for scanning. */ -static bool +static int queue_subdir( struct scrub_ctx *ctx, struct scan_fs_tree *sft, @@ -84,14 +84,12 @@ queue_subdir( int error; new_sftd = malloc(sizeof(struct scan_fs_tree_dir)); - if (!new_sftd) { - str_errno(ctx, _("creating directory scan context")); - return false; - } + if (!new_sftd) + return errno; new_sftd->path = strdup(path); if (!new_sftd->path) { - str_errno(ctx, _("creating directory scan path")); + error = errno; goto out_sftd; } @@ -106,12 +104,12 @@ queue_subdir( goto out_path; } - return true; + return 0; out_path: free(new_sftd->path); out_sftd: free(new_sftd); - return false; + return error; } /* Scan a directory sub tree. */ @@ -187,10 +185,13 @@ scan_fs_dir( /* If directory, call ourselves recursively. */ if (S_ISDIR(sb.st_mode) && strcmp(".", dirent->d_name) && strcmp("..", dirent->d_name)) { - sft->moveon = queue_subdir(ctx, sft, wq, newpath, - false); - if (!sft->moveon) + error = queue_subdir(ctx, sft, wq, newpath, false); + if (error) { + str_liberror(ctx, error, +_("queueing subdirectory scan")); + sft->moveon = false; break; + } } } @@ -233,9 +234,11 @@ scan_fs_tree( return false; } - sft.moveon = queue_subdir(ctx, &sft, &wq, ctx->mntpoint, true); - if (!sft.moveon) + ret = queue_subdir(ctx, &sft, &wq, ctx->mntpoint, true); + if (ret) { + str_liberror(ctx, ret, _("queueing directory scan")); goto out_wq; + } /* * Wait for the wakeup to trigger, which should only happen when the |