On Tue, Oct 27, 2020 at 08:33:50AM -0700, Darrick J. Wong wrote: > On Mon, Oct 26, 2020 at 10:35:46PM -0700, Allison Henderson wrote: > > > > > > On 10/26/20 4:32 PM, Darrick J. Wong wrote: > > > From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > > > > > The only caller that cares about the file counts uses it to compute the > > > number of files used, so return that and save a parameter. > > > > > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > > --- > > > scrub/fscounters.c | 8 +++----- > > > scrub/fscounters.h | 2 +- > > > scrub/phase6.c | 7 +++---- > > > scrub/phase7.c | 5 +---- > > > 4 files changed, 8 insertions(+), 14 deletions(-) > > > > > > > > > diff --git a/scrub/fscounters.c b/scrub/fscounters.c > > > index e9901fcdf6df..9a240d49477b 100644 > > > --- a/scrub/fscounters.c > > > +++ b/scrub/fscounters.c > > > @@ -116,7 +116,7 @@ scrub_count_all_inodes( > > > } > > > /* > > > - * Estimate the number of blocks and inodes in the filesystem. Returns 0 > > > + * Estimate the number of blocks and used inodes in the filesystem. Returns 0 > > > * or a positive error number. > > > */ > > > int > > > @@ -126,8 +126,7 @@ scrub_scan_estimate_blocks( > > > unsigned long long *d_bfree, > > > unsigned long long *r_blocks, > > > unsigned long long *r_bfree, > > > - unsigned long long *f_files, > > > - unsigned long long *f_free) > > > + unsigned long long *f_files_used) > > > { > > > struct xfs_fsop_counts fc; > > > int error; > > > @@ -141,8 +140,7 @@ scrub_scan_estimate_blocks( > > > *d_bfree = fc.freedata; > > > *r_blocks = ctx->mnt.fsgeom.rtblocks; > > > *r_bfree = fc.freertx; > > > - *f_files = fc.allocino; > > > - *f_free = fc.freeino; > > > + *f_files_used = fc.allocino - fc.freeino; > > Just a nit, I think I might have put in: > > if(f_files_used) > > *f_files_used = fc.allocino - fc.freeino; > > > > That way calling functions that don't care can just pass NULL, instead of > > declaring a "dontcare" variable that has no other use. Though I suppose > > none of the other variables do that. > > <shrug> There's only two callers, and they both pass a pointer, so I > didn't bother... ...and one of those callers is to a dontcare variable; and that's what you were talking about. Er... I don't mind changing it, but I'll leave that to Eric's discretion. --D > --D > > > Reviewed-by: Allison Henderson <allison.henderson@xxxxxxxxxx> > > Allison > > > return 0; > > > } > > > diff --git a/scrub/fscounters.h b/scrub/fscounters.h > > > index 1fae58a6b287..13bd9967f004 100644 > > > --- a/scrub/fscounters.h > > > +++ b/scrub/fscounters.h > > > @@ -9,7 +9,7 @@ > > > int scrub_scan_estimate_blocks(struct scrub_ctx *ctx, > > > unsigned long long *d_blocks, unsigned long long *d_bfree, > > > unsigned long long *r_blocks, unsigned long long *r_bfree, > > > - unsigned long long *f_files, unsigned long long *f_free); > > > + unsigned long long *f_files_used); > > > int scrub_count_all_inodes(struct scrub_ctx *ctx, uint64_t *count); > > > #endif /* XFS_SCRUB_FSCOUNTERS_H_ */ > > > diff --git a/scrub/phase6.c b/scrub/phase6.c > > > index 8d976732d8e1..87828b60fbed 100644 > > > --- a/scrub/phase6.c > > > +++ b/scrub/phase6.c > > > @@ -719,12 +719,11 @@ phase6_estimate( > > > unsigned long long d_bfree; > > > unsigned long long r_blocks; > > > unsigned long long r_bfree; > > > - unsigned long long f_files; > > > - unsigned long long f_free; > > > + unsigned long long dontcare; > > > int ret; > > > - ret = scrub_scan_estimate_blocks(ctx, &d_blocks, &d_bfree, > > > - &r_blocks, &r_bfree, &f_files, &f_free); > > > + ret = scrub_scan_estimate_blocks(ctx, &d_blocks, &d_bfree, &r_blocks, > > > + &r_bfree, &dontcare); > > > if (ret) { > > > str_liberror(ctx, ret, _("estimating verify work")); > > > return ret; > > > diff --git a/scrub/phase7.c b/scrub/phase7.c > > > index 96876f7c0596..bc652ab6f44a 100644 > > > --- a/scrub/phase7.c > > > +++ b/scrub/phase7.c > > > @@ -111,8 +111,6 @@ phase7_func( > > > unsigned long long d_bfree; > > > unsigned long long r_blocks; > > > unsigned long long r_bfree; > > > - unsigned long long f_files; > > > - unsigned long long f_free; > > > bool complain; > > > int ip; > > > int error; > > > @@ -160,7 +158,7 @@ phase7_func( > > > } > > > error = scrub_scan_estimate_blocks(ctx, &d_blocks, &d_bfree, &r_blocks, > > > - &r_bfree, &f_files, &f_free); > > > + &r_bfree, &used_files); > > > if (error) { > > > str_liberror(ctx, error, _("estimating verify work")); > > > return error; > > > @@ -177,7 +175,6 @@ phase7_func( > > > /* Report on what we found. */ > > > used_data = cvt_off_fsb_to_b(&ctx->mnt, d_blocks - d_bfree); > > > used_rt = cvt_off_fsb_to_b(&ctx->mnt, r_blocks - r_bfree); > > > - used_files = f_files - f_free; > > > stat_data = totalcount.dbytes; > > > stat_rt = totalcount.rbytes; > > >