Re: [PATCHv2 1/2] common/rc: Add whitelisted FS support in _require_scratch_swapfile()

Darrick J. Wong
2021-01-04T18:26:50Z

On Sun, Dec 20, 2020 at 11:39:06PM +0800, Eryu Guan wrote:
> On Wed, Dec 16, 2020 at 10:53:45AM +0530, Ritesh Harjani wrote:
> >
> >
> > On 12/16/20 10:47 AM, Ritesh Harjani wrote:
> > > Filesystems e.g. ext4 and XFS supports swapon by default and an error
> > > returned with swapon should be treated as a failure. Hence
> > > add ext4/xfs as whitelisted fstype in _require_scratch_swapfile()
> > >
> > > Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
> > > ---
> > > v1->v2: Addressed comments from Eryu @[1]
> > > [1]: https://patchwork.kernel.org/project/fstests/cover/cover.1604000570.git.riteshh@linux.ibm.com/
> > >
> > > common/rc | 20 ++++++++++++++++----
> > > 1 file changed, 16 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/common/rc b/common/rc
> > > index 33b5b598a198..635b77a005c6 100644
> > > --- a/common/rc
> > > +++ b/common/rc
> > > @@ -2380,6 +2380,7 @@ _format_swapfile() {
> > > # Check that the filesystem supports swapfiles
> > > _require_scratch_swapfile()
> > > {
> > > + local fstyp=$FSTYP
> > > _require_scratch
> > > _require_command "$MKSWAP_PROG" "mkswap"
> > >
> > > @@ -2401,10 +2402,21 @@ _require_scratch_swapfile()
> > > # Minimum size for mkswap is 10 pages
> > > _format_swapfile "$SCRATCH_MNT/swap" $(($(get_page_size) * 10))
> > >
> > > - if ! swapon "$SCRATCH_MNT/swap" >/dev/null 2>&1; then
> > > - _scratch_unmount
> > > - _notrun "swapfiles are not supported"
> > > - fi
> > > + # For whitelisted fstyp swapon should not fail.

I would use a different phase than 'whitelisted', since that doesn't
tell us why ext4 and xfs are special:

# ext* and xfs have supported all variants of swap files since their
# introduction, so swapon should not fail.

> > > + case "$fstyp" in

$FSTYP, not $fstyp

> > > + ext4|xfs)

I would also add a few more FSTYPs here, since at least ext2 and ext3
supported swap files. Are there other old fses that do?

--D

> > > + if ! swapon "$SCRATCH_MNT/swap" >/dev/null 2>&1; then
> > > + _scratch_unmount
> > > + _fail "swapon failed for $fstyp"
> >
> > @Eryu,
> > As of now I added _fail() if swapon failed for given whitelisting fstype.
> > Do you think this is alright, or should I just ignore the error in
>
> I think it's reasonable.
>
> But I'd like to leave the patchset on the list for review for another
> week, to see if ext4 and/or xfs folks will chime in and have different
> thoughts.
>
> Thanks,
> Eryu
>
> > case of such FS?
> >
> >
> >
> > > + fi
> > > + ;;
> > > + *)
> > > + if ! swapon "$SCRATCH_MNT/swap" >/dev/null 2>&1; then
> > > + _scratch_unmount
> > > + _notrun "swapfiles are not supported"
> > > + fi
> > > + ;;
> > > + esac
> > >
> > > swapoff "$SCRATCH_MNT/swap" >/dev/null 2>&1
> > > _scratch_unmount
> > > --
> > > 2.26.2
> > >