All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] common/rc: Fix mismatched output from standard mkswap
@ 2018-06-05  9:21 Xiao Yang
  2018-06-07  9:52 ` Eryu Guan
  0 siblings, 1 reply; 6+ messages in thread
From: Xiao Yang @ 2018-06-05  9:21 UTC (permalink / raw)
  To: fstests; +Cc: osandov, Xiao Yang

Running generic/495 with EXT4 on RHEL6 got the following output:
----------------------------------------------------------------
...
+mkswap: /mnt/xfstests/scratch/swap: warning: don't erase bootbits sectors
+        on whole disk. Use -f to force.
+mkswap: unable to relabel /mnt/xfstests/scratch/swap to system_u:object_r:swapfile_t:s0: Operation not supported
...
----------------------------------------------------------------

Before commit c1f1b30 of util-linux, mkswap didn't zap bootbits sectors
and printed a warning until force option(i.e. -f) was given, so we add
the force option.

Before commit d97dc0e of util-linux, mkswap failed to relabel SELinux
labeling when the underlying filesystem didn't support it.  We avoid
default fs-wide context set in xfstests by mounting manually.

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
---
 common/rc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/common/rc b/common/rc
index 9273ff7..6a20454 100644
--- a/common/rc
+++ b/common/rc
@@ -2216,7 +2216,7 @@ _format_swapfile() {
 	# Swap files must be nocow on Btrfs.
 	$CHATTR_PROG +C "$fname" > /dev/null 2>&1
 	_pwrite_byte 0x61 0 "$sz" "$fname" >> $seqres.full
-	mkswap "$fname" >> $seqres.full
+	mkswap -f "$fname" >> $seqres.full
 }
 
 # Check that the filesystem supports swapfiles
@@ -2225,7 +2225,7 @@ _require_scratch_swapfile()
 	_require_scratch
 
 	_scratch_mkfs >/dev/null
-	_scratch_mount
+	_mount $SCRATCH_DEV $SCRATCH_MNT
 
 	# Minimum size for mkswap is 10 pages
 	_format_swapfile "$SCRATCH_MNT/swap" $(($(get_page_size) * 10))
-- 
1.8.3.1




^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] common/rc: Fix mismatched output from standard mkswap
  2018-06-05  9:21 [PATCH] common/rc: Fix mismatched output from standard mkswap Xiao Yang
@ 2018-06-07  9:52 ` Eryu Guan
  2018-06-08  4:06   ` Xiao Yang
  2018-12-14  7:57   ` [PATCH v2] " Xiao Yang
  0 siblings, 2 replies; 6+ messages in thread
From: Eryu Guan @ 2018-06-07  9:52 UTC (permalink / raw)
  To: Xiao Yang; +Cc: fstests, osandov

On Tue, Jun 05, 2018 at 05:21:45PM +0800, Xiao Yang wrote:
> Running generic/495 with EXT4 on RHEL6 got the following output:
> ----------------------------------------------------------------
> ...
> +mkswap: /mnt/xfstests/scratch/swap: warning: don't erase bootbits sectors
> +        on whole disk. Use -f to force.
> +mkswap: unable to relabel /mnt/xfstests/scratch/swap to system_u:object_r:swapfile_t:s0: Operation not supported
> ...
> ----------------------------------------------------------------
> 
> Before commit c1f1b30 of util-linux, mkswap didn't zap bootbits sectors
> and printed a warning until force option(i.e. -f) was given, so we add
> the force option.
> 
> Before commit d97dc0e of util-linux, mkswap failed to relabel SELinux
> labeling when the underlying filesystem didn't support it.  We avoid
> default fs-wide context set in xfstests by mounting manually.
> 
> Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
> ---
>  common/rc | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/common/rc b/common/rc
> index 9273ff7..6a20454 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -2216,7 +2216,7 @@ _format_swapfile() {
>  	# Swap files must be nocow on Btrfs.
>  	$CHATTR_PROG +C "$fname" > /dev/null 2>&1
>  	_pwrite_byte 0x61 0 "$sz" "$fname" >> $seqres.full
> -	mkswap "$fname" >> $seqres.full
> +	mkswap -f "$fname" >> $seqres.full
>  }

This part looks fine.

>  
>  # Check that the filesystem supports swapfiles
> @@ -2225,7 +2225,7 @@ _require_scratch_swapfile()
>  	_require_scratch
>  
>  	_scratch_mkfs >/dev/null
> -	_scratch_mount
> +	_mount $SCRATCH_DEV $SCRATCH_MNT

But this breaks test on overlay, it fails to mount overlayfs.

And I manually revert d97dc0e and build mkswap from util-linux, and test
with ext4, but I didn't reproduce the failure. It seems it only happens
when underlying filesystem doesn't support extend attr? (I don't have a
RHEL6 env by hand..).

Thanks,
Eryu


>  
>  	# Minimum size for mkswap is 10 pages
>  	_format_swapfile "$SCRATCH_MNT/swap" $(($(get_page_size) * 10))
> -- 
> 1.8.3.1
> 
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] common/rc: Fix mismatched output from standard mkswap
  2018-06-07  9:52 ` Eryu Guan
@ 2018-06-08  4:06   ` Xiao Yang
  2018-12-14  7:57   ` [PATCH v2] " Xiao Yang
  1 sibling, 0 replies; 6+ messages in thread
From: Xiao Yang @ 2018-06-08  4:06 UTC (permalink / raw)
  To: Eryu Guan; +Cc: fstests, osandov

On 2018/06/07 17:52, Eryu Guan wrote:
> On Tue, Jun 05, 2018 at 05:21:45PM +0800, Xiao Yang wrote:
>> Running generic/495 with EXT4 on RHEL6 got the following output:
>> ----------------------------------------------------------------
>> ...
>> +mkswap: /mnt/xfstests/scratch/swap: warning: don't erase bootbits sectors
>> +        on whole disk. Use -f to force.
>> +mkswap: unable to relabel /mnt/xfstests/scratch/swap to system_u:object_r:swapfile_t:s0: Operation not supported
>> ...
>> ----------------------------------------------------------------
>>
>> Before commit c1f1b30 of util-linux, mkswap didn't zap bootbits sectors
>> and printed a warning until force option(i.e. -f) was given, so we add
>> the force option.
>>
>> Before commit d97dc0e of util-linux, mkswap failed to relabel SELinux
>> labeling when the underlying filesystem didn't support it.  We avoid
>> default fs-wide context set in xfstests by mounting manually.
>>
>> Signed-off-by: Xiao Yang<yangx.jy@cn.fujitsu.com>
>> ---
>>   common/rc | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/common/rc b/common/rc
>> index 9273ff7..6a20454 100644
>> --- a/common/rc
>> +++ b/common/rc
>> @@ -2216,7 +2216,7 @@ _format_swapfile() {
>>   	# Swap files must be nocow on Btrfs.
>>   	$CHATTR_PROG +C "$fname">  /dev/null 2>&1
>>   	_pwrite_byte 0x61 0 "$sz" "$fname">>  $seqres.full
>> -	mkswap "$fname">>  $seqres.full
>> +	mkswap -f "$fname">>  $seqres.full
>>   }
> This part looks fine.
>
>>
>>   # Check that the filesystem supports swapfiles
>> @@ -2225,7 +2225,7 @@ _require_scratch_swapfile()
>>   	_require_scratch
>>
>>   	_scratch_mkfs>/dev/null
>> -	_scratch_mount
>> +	_mount $SCRATCH_DEV $SCRATCH_MNT
Hi Eryu,
> But this breaks test on overlay, it fails to mount overlayfs.
Sorry, i fogot the especial overlay.
> And I manually revert d97dc0e and build mkswap from util-linux, and test
> with ext4, but I didn't reproduce the failure. It seems it only happens
> when underlying filesystem doesn't support extend attr? (I don't have a
> RHEL6 env by hand..).
Do you build mkswap with ./configure --with-selinux?  We probablely need 
HAVE_LIBSELINUX
macro.  We also make the status of SELinux Permissive/enforcing.

I reverted d97dc0e and built mkswap from util-linux, and produced the 
error with ext4/xfs on
v4.15-rc7 and v4.16.

I seems that kernel cannot change the value of security.selinux if it 
has been initialized by
mount -o context=xxx.

Thanks,
Xiao Yang
> Thanks,
> Eryu
>
>
>>
>>   	# Minimum size for mkswap is 10 pages
>>   	_format_swapfile "$SCRATCH_MNT/swap" $(($(get_page_size) * 10))
>> -- 
>> 1.8.3.1
>>
>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe fstests" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>
>




^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2] common/rc: Fix mismatched output from standard mkswap
  2018-06-07  9:52 ` Eryu Guan
  2018-06-08  4:06   ` Xiao Yang
@ 2018-12-14  7:57   ` Xiao Yang
  2018-12-15 12:29     ` Eryu Guan
  1 sibling, 1 reply; 6+ messages in thread
From: Xiao Yang @ 2018-12-14  7:57 UTC (permalink / raw)
  To: guaneryu; +Cc: fstests, osandov, Xiao Yang

With older util-linux(e.g. v2.17.2), running some tests(e.g. generic/472,
generic/495) got the following output:
-------------------------------------------------------
+mkswap: /mnt/xfstests/scratch/swap: warning: don't erase bootbits sectors
+        on whole disk. Use -f to force.
+mkswap: unable to relabel /mnt/xfstests/scratch/swap to system_u:object_r:swapfile_t:s0: Operation not supported
-------------------------------------------------------

1) Before commit c1f1b30 of util-linux, mkswap didn't zap bootbits sectors
   and printed a warning until force option(i.e. -f) was given.  We try to
   add the force option.

2) With mounting default SELinux context(e.g. system_u:object_r:root_t:s0),
   standard mkswap tried to reset the type of default context to swapfile_t
   if it is not swapfile_t, and then it failed and returned ENOTSUP expectedly
   as we don't want to create any SELinux attr on purpose.  standard mkswap
   ignored this relabel error by commit d97dc0e of util-linux, but it still
   reported the error before commit d97dc0e.  We try to skip the reset step
   in standard mkswap by mounting swapfile context.

Note:
We just mount swapfile context in related tests, and keep default context
in the rest of tests.

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
---
 common/rc | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/common/rc b/common/rc
index e5da648..4bdb870 100644
--- a/common/rc
+++ b/common/rc
@@ -2210,7 +2210,7 @@ _format_swapfile() {
 	# Swap files must be nocow on Btrfs.
 	$CHATTR_PROG +C "$fname" > /dev/null 2>&1
 	_pwrite_byte 0x61 0 "$sz" "$fname" >> $seqres.full
-	mkswap "$fname" >> $seqres.full
+	mkswap -f "$fname" >> $seqres.full
 }
 
 # Check that the filesystem supports swapfiles
@@ -2219,6 +2219,8 @@ _require_scratch_swapfile()
 	_require_scratch
 
 	_scratch_mkfs >/dev/null
+	[ -n "$SELINUX_MOUNT_OPTIONS" ] && export \
+		SELINUX_MOUNT_OPTIONS="-o context=system_u:object_r:swapfile_t:s0"
 	_scratch_mount
 
 	# Minimum size for mkswap is 10 pages
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] common/rc: Fix mismatched output from standard mkswap
  2018-12-14  7:57   ` [PATCH v2] " Xiao Yang
@ 2018-12-15 12:29     ` Eryu Guan
  2018-12-21  9:33       ` [PATCH v3] common: " Xiao Yang
  0 siblings, 1 reply; 6+ messages in thread
From: Eryu Guan @ 2018-12-15 12:29 UTC (permalink / raw)
  To: Xiao Yang; +Cc: fstests, osandov

On Fri, Dec 14, 2018 at 03:57:27PM +0800, Xiao Yang wrote:
> With older util-linux(e.g. v2.17.2), running some tests(e.g. generic/472,
> generic/495) got the following output:
> -------------------------------------------------------
> +mkswap: /mnt/xfstests/scratch/swap: warning: don't erase bootbits sectors
> +        on whole disk. Use -f to force.
> +mkswap: unable to relabel /mnt/xfstests/scratch/swap to system_u:object_r:swapfile_t:s0: Operation not supported
> -------------------------------------------------------
> 
> 1) Before commit c1f1b30 of util-linux, mkswap didn't zap bootbits sectors
>    and printed a warning until force option(i.e. -f) was given.  We try to
>    add the force option.
> 
> 2) With mounting default SELinux context(e.g. system_u:object_r:root_t:s0),
>    standard mkswap tried to reset the type of default context to swapfile_t
>    if it is not swapfile_t, and then it failed and returned ENOTSUP expectedly
>    as we don't want to create any SELinux attr on purpose.  standard mkswap
>    ignored this relabel error by commit d97dc0e of util-linux, but it still
>    reported the error before commit d97dc0e.  We try to skip the reset step
>    in standard mkswap by mounting swapfile context.
> 
> Note:
> We just mount swapfile context in related tests, and keep default context
> in the rest of tests.
> 
> Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
> ---
>  common/rc | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/common/rc b/common/rc
> index e5da648..4bdb870 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -2210,7 +2210,7 @@ _format_swapfile() {
>  	# Swap files must be nocow on Btrfs.
>  	$CHATTR_PROG +C "$fname" > /dev/null 2>&1
>  	_pwrite_byte 0x61 0 "$sz" "$fname" >> $seqres.full
> -	mkswap "$fname" >> $seqres.full
> +	mkswap -f "$fname" >> $seqres.full

I looked at it again, and realized that we have other places that call
mkswap would have the same problem, e.g. btrfs/173 and xfs/419.

So I think it'd be better to introduce MKSWAP_PROG and make it
"mkswap -f" and use $MKSWAP_PROG here and in tests, so we don't have to
worry about this issue for new tests.

>  }
>  
>  # Check that the filesystem supports swapfiles
> @@ -2219,6 +2219,8 @@ _require_scratch_swapfile()
>  	_require_scratch
>  
>  	_scratch_mkfs >/dev/null
> +	[ -n "$SELINUX_MOUNT_OPTIONS" ] && export \
> +		SELINUX_MOUNT_OPTIONS="-o context=system_u:object_r:swapfile_t:s0"

Better to add comments on why we're doing this.

Thanks!
Eryu
>  	_scratch_mount
>  
>  	# Minimum size for mkswap is 10 pages
> -- 
> 1.8.3.1
> 
> 
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v3] common: Fix mismatched output from standard mkswap
  2018-12-15 12:29     ` Eryu Guan
@ 2018-12-21  9:33       ` Xiao Yang
  0 siblings, 0 replies; 6+ messages in thread
From: Xiao Yang @ 2018-12-21  9:33 UTC (permalink / raw)
  To: guaneryu; +Cc: fstests, osandov, Xiao Yang

With older util-linux(e.g. v2.17.2), running some tests(e.g. generic/472,
generic/495) got the following output:
-------------------------------------------------------
+mkswap: /mnt/xfstests/scratch/swap: warning: don't erase bootbits sectors
+        on whole disk. Use -f to force.
+mkswap: unable to relabel /mnt/xfstests/scratch/swap to system_u:object_r:swapfile_t:s0: Operation not supported
-------------------------------------------------------

1) Before commit c1f1b30 of util-linux, standard mkswap didn't zap bootbits
   sectors and printed a warning until force option(i.e. -f) was given.  We
   define "mkswap -f" as MKSWAP_PROG and replace all standard mkswap with
   $MKSWAP_PROG.

2) With mounting default SELinux context(e.g. system_u:object_r:root_t:s0),
   standard mkswap tried to reset the type of default context to swapfile_t
   if it is not swapfile_t, and then it failed and returned ENOTSUP expectedly
   as we don't want to create any SELinux attr on purpose.  standard mkswap
   ignored this relabel error by commit d97dc0e of util-linux, but it still
   reported the error before commit d97dc0e.  We try to skip the reset step
   in standard mkswap by mounting swapfile context directly.

Note:
We just mount swapfile context in related tests, and keep default context
in the rest of tests.

Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com>
---
 common/config   |  4 ++++
 common/rc       | 14 +++++++++++++-
 tests/btrfs/173 |  2 +-
 tests/xfs/419   |  2 +-
 4 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/common/config b/common/config
index a87cb4a..2fd23b8 100644
--- a/common/config
+++ b/common/config
@@ -132,6 +132,10 @@ export DF_PROG="$(type -P df)"
 export XFS_IO_PROG="$(type -P xfs_io)"
 [ "$XFS_IO_PROG" = "" ] && _fatal "xfs_io not found"
 
+export MKSWAP_PROG="$(type -P mkswap)"
+[ "$MKSWAP_PROG" = "" ] && _fatal "mkswap not found"
+MKSWAP_PROG="$MKSWAP_PROG -f"
+
 export XFS_LOGPRINT_PROG="$(type -P xfs_logprint)"
 export XFS_REPAIR_PROG="$(type -P xfs_repair)"
 export XFS_DB_PROG="$(type -P xfs_db)"
diff --git a/common/rc b/common/rc
index e5da648..9110c99 100644
--- a/common/rc
+++ b/common/rc
@@ -2210,7 +2210,7 @@ _format_swapfile() {
 	# Swap files must be nocow on Btrfs.
 	$CHATTR_PROG +C "$fname" > /dev/null 2>&1
 	_pwrite_byte 0x61 0 "$sz" "$fname" >> $seqres.full
-	mkswap "$fname" >> $seqres.full
+	$MKSWAP_PROG "$fname" >> $seqres.full
 }
 
 # Check that the filesystem supports swapfiles
@@ -2219,6 +2219,18 @@ _require_scratch_swapfile()
 	_require_scratch
 
 	_scratch_mkfs >/dev/null
+
+	# With mounting SELinux context(e.g. system_u:object_r:root_t:s0),
+	# standard mkswap tried to reset the type of default context to
+	# swapfile_t if it's not swapfile_t, and then it failed and returned
+	# ENOTSUP expectedly as we don't want to create any SELinux attr on
+	# purpose.  standard mkswap ignored this relabel error by commit
+	# d97dc0e of util-linux, but it still reported the error before
+	# commit d97dc0e.  We mount swapfile context directly to skip the
+	# reset step.
+	[ -n "$SELINUX_MOUNT_OPTIONS" ] && export \
+		SELINUX_MOUNT_OPTIONS="-o context=system_u:object_r:swapfile_t:s0"
+
 	_scratch_mount
 
 	# Minimum size for mkswap is 10 pages
diff --git a/tests/btrfs/173 b/tests/btrfs/173
index 76d4407..515d8cf 100755
--- a/tests/btrfs/173
+++ b/tests/btrfs/173
@@ -41,7 +41,7 @@ rm -f "$SCRATCH_MNT/swap"
 touch "$SCRATCH_MNT/swap"
 chmod 0600 "$SCRATCH_MNT/swap"
 _pwrite_byte 0x61 0 $(($(get_page_size) * 10)) "$SCRATCH_MNT/swap" >> $seqres.full
-mkswap "$SCRATCH_MNT/swap" >> $seqres.full
+$MKSWAP_PROG "$SCRATCH_MNT/swap" >> $seqres.full
 swapon "$SCRATCH_MNT/swap" 2>&1 | _filter_scratch
 swapoff "$SCRATCH_MNT/swap" >/dev/null 2>&1
 
diff --git a/tests/xfs/419 b/tests/xfs/419
index 33d2d0d..6865201 100755
--- a/tests/xfs/419
+++ b/tests/xfs/419
@@ -47,7 +47,7 @@ $XFS_IO_PROG -c "open -f -R $testdir/dummy" $testdir >> $seqres.full
 echo moo >> $testdir/dummy
 $XFS_IO_PROG -c "open -f -R $testdir/file1" $testdir >> $seqres.full
 _pwrite_byte 0x61 0 $((blocks * blksz)) $testdir/file1 >> $seqres.full
-mkswap -U 27376b42-ff65-42ca-919f-6c9b62292a5c $testdir/file1 >> $seqres.full
+$MKSWAP_PROG -U 27376b42-ff65-42ca-919f-6c9b62292a5c $testdir/file1 >> $seqres.full
 
 echo "Try to swapon"
 swapon $testdir/file1 2>&1 | _filter_scratch
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-12-21 10:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-05  9:21 [PATCH] common/rc: Fix mismatched output from standard mkswap Xiao Yang
2018-06-07  9:52 ` Eryu Guan
2018-06-08  4:06   ` Xiao Yang
2018-12-14  7:57   ` [PATCH v2] " Xiao Yang
2018-12-15 12:29     ` Eryu Guan
2018-12-21  9:33       ` [PATCH v3] common: " Xiao Yang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.