On Wed, Oct 28, 2020 at 07:40:10PM +0800, Gao Xiang wrote: > This allows shrinking operation can pass into kernel. > > Signed-off-by: Gao Xiang <hsiangkao@xxxxxxxxxx> > --- > preliminary version. ...which is going to need a manpage update: "-d | -D size "Specifies that the data section of the filesystem should be resized. If the -D size option is given, the data section is changed to that size, otherwise the data section is grown to the largest size possible with the -d option. The size is expressed in filesystem blocks. A filesystem with only 1 AG cannot be shrunk further, and a filesystem cannot be shrunk to the point where it would only have 1 AG." --D > > growfs/xfs_growfs.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/growfs/xfs_growfs.c b/growfs/xfs_growfs.c > index a68b515d..d45ba703 100644 > --- a/growfs/xfs_growfs.c > +++ b/growfs/xfs_growfs.c > @@ -246,12 +246,11 @@ main(int argc, char **argv) > error = 1; > } > > - if (!error && dsize < geo.datablocks) { > - fprintf(stderr, _("data size %lld too small," > - " old size is %lld\n"), > + if (!error && dsize < geo.datablocks) > + fprintf(stderr, > +_("[EXPERIMENTAL] try to shrink unused space %lld, old size is %lld\n"), > (long long)dsize, (long long)geo.datablocks); > - error = 1; > - } else if (!error && > + if (!error && > dsize == geo.datablocks && maxpct == geo.imaxpct) { > if (dflag) > fprintf(stderr, _( > -- > 2.18.1 >