On Sat, Dec 14, 2019 at 12:53:56PM -0600, Eric Sandeen wrote: > Only notify user of discard operations if the first one succeeds, > and be sure to print a trailing newline if we stop early. > > Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> > --- > > V2: Logic is hard. ;) If I messed this one up, take it back Darrick. :) > > diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c > index 4bfdebf6..606f79da 100644 > --- a/mkfs/xfs_mkfs.c > +++ b/mkfs/xfs_mkfs.c > @@ -1251,10 +1251,6 @@ discard_blocks(dev_t dev, uint64_t nsectors, int quiet) > fd = libxfs_device_to_fd(dev); > if (fd <= 0) > return; > - if (!quiet) { > - printf("Discarding blocks..."); > - fflush(stdout); > - } > > /* The block discarding happens in smaller batches so it can be > * interrupted prematurely > @@ -1267,12 +1263,20 @@ discard_blocks(dev_t dev, uint64_t nsectors, int quiet) > * not necessary for the mkfs functionality but just an > * optimization. However we should stop on error. > */ > - if (platform_discard_blocks(fd, offset, tmp_step)) > + if (platform_discard_blocks(fd, offset, tmp_step) == 0) { > + if (offset == 0 && !quiet) { > + printf("Discarding blocks..."); > + fflush(stdout); > + } > + } else { > + if (offset > 0 && !quiet) > + printf("\n"); Maybe we should say failed? Or ... eh... whatever, the format happens regardless. Looks ok, Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --D > return; > + } > > offset += tmp_step; > } > - if (!quiet) > + if (offset > 0 && !quiet) > printf("Done.\n"); > } > > >