diff mbox series

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

Message ID f161a49e6e3476d83c35b8e6a111644110ec4c8c.1608094988.git.riteshh@linux.ibm.com (mailing list archive)
State New, archived
Headers show
Series [PATCHv2,1/2] common/rc: Add whitelisted FS support in _require_scratch_swapfile() | expand

Commit Message

Ritesh Harjani Dec. 16, 2020, 5:17 a.m. UTC
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(-)

--
2.26.2

Comments

Ritesh Harjani Dec. 16, 2020, 5:23 a.m. UTC | #1
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.
> +	case "$fstyp" in
> +	ext4|xfs)
> +		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
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
>
Eryu Guan Dec. 20, 2020, 3:39 p.m. UTC | #2
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.
> > +	case "$fstyp" in
> > +	ext4|xfs)
> > +		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
> >
Darrick J. Wong Jan. 4, 2021, 6:25 p.m. UTC | #3
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
> > >
Ritesh Harjani Jan. 5, 2021, 11 a.m. UTC | #4
On 1/4/21 11:55 PM, Darrick J. Wong wrote:
> 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.

Sounds ok to me.


> 
>>>> +	case "$fstyp" in
> 
> $FSTYP, not $fstyp

sure I will use $FSTYP directly and remove local fstyp variable.

> 
>>>> +	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?

Sure, agreed. I will add ext2 & ext3 too.

-ritesh
diff mbox series

Patch

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.
+	case "$fstyp" in
+	ext4|xfs)
+		if ! swapon "$SCRATCH_MNT/swap" >/dev/null 2>&1; then
+			_scratch_unmount
+			_fail "swapon failed for $fstyp"
+		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