Message ID | 20210511073945.906127-2-hsiangkao@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | xfs: testcases for shrinking free space in the last AG | expand |
On Tue, May 11, 2021 at 03:39:43PM +0800, Gao Xiang wrote: > In order to detect whether the current kernel supports XFS shrinking. > > Signed-off-by: Gao Xiang <hsiangkao@redhat.com> > --- > common/xfs | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/common/xfs b/common/xfs > index 69f76d6e..184aa01e 100644 > --- a/common/xfs > +++ b/common/xfs > @@ -766,6 +766,26 @@ _require_xfs_mkfs_without_validation() > fi > } > > +_require_xfs_scratch_shrink() > +{ > + _require_scratch > + _require_command "$XFS_GROWFS_PROG" xfs_growfs > + > + _scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs >/dev/null > + . $tmp.mkfs > + _scratch_mount > + # here just to check if kernel supports, no need do more extra work > + errmsg=$($XFS_GROWFS_PROG -D$((dblocks-1)) "$SCRATCH_MNT" 2>&1) > + if [ "$?" -ne 0 ]; then > + echo "$errmsg" | grep 'XFS_IOC_FSGROWFSDATA xfsctl failed: Invalid argument' && \ > + _notrun "kernel does not support shrinking" > + echo "$errmsg" | grep 'data size .* too small, old size is ' && \ > + _notrun "xfsprogs does not support shrinking" > + _fail "$XFS_GROWFS_PROG failed unexpectedly" Silly nit: why not print $errmsg in the fail string? With that fixed, Reviewed-by: Darrick J. Wong <djwong@kernel.org> --D > + fi > + _scratch_unmount > +} > + > # XFS ability to change UUIDs on V5/CRC filesystems > # > _require_meta_uuid() > -- > 2.27.0 >
diff --git a/common/xfs b/common/xfs index 69f76d6e..184aa01e 100644 --- a/common/xfs +++ b/common/xfs @@ -766,6 +766,26 @@ _require_xfs_mkfs_without_validation() fi } +_require_xfs_scratch_shrink() +{ + _require_scratch + _require_command "$XFS_GROWFS_PROG" xfs_growfs + + _scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs >/dev/null + . $tmp.mkfs + _scratch_mount + # here just to check if kernel supports, no need do more extra work + errmsg=$($XFS_GROWFS_PROG -D$((dblocks-1)) "$SCRATCH_MNT" 2>&1) + if [ "$?" -ne 0 ]; then + echo "$errmsg" | grep 'XFS_IOC_FSGROWFSDATA xfsctl failed: Invalid argument' && \ + _notrun "kernel does not support shrinking" + echo "$errmsg" | grep 'data size .* too small, old size is ' && \ + _notrun "xfsprogs does not support shrinking" + _fail "$XFS_GROWFS_PROG failed unexpectedly" + fi + _scratch_unmount +} + # XFS ability to change UUIDs on V5/CRC filesystems # _require_meta_uuid()
In order to detect whether the current kernel supports XFS shrinking. Signed-off-by: Gao Xiang <hsiangkao@redhat.com> --- common/xfs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)