diff mbox series

[ima-evm-utils] Fix fsverity.test mount failure for ppc64

Message ID 20230311091644.647214-1-vt@altlinux.org (mailing list archive)
State New, archived
Headers show
Series [ima-evm-utils] Fix fsverity.test mount failure for ppc64 | expand

Commit Message

Vitaly Chikunov March 11, 2023, 9:16 a.m. UTC
fsverity requires fs blocksize to be equal to pagesoze, which is
different on ppc64 (64K). Default mkfs blocksize if 4K. This difference
causes mount failure and following error message:

  INFO: Mounting loopback filesystem
  mount: /tmp/fsverity-test: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
         dmesg(1) may have more information after failed mount system call.
  FAILURE: mounting loopback filesystem

It's said this limitation is removed in Linux v6.3, but for backward
compatibility better to leave workaround for it.

Fixes: b259a2b ("tests: add fsverity measurement test")
Signed-off-by: Vitaly Chikunov <vt@altlinux.org>
---
 tests/fsverity.test | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

R Nageswara Sastry March 14, 2023, 1:27 p.m. UTC | #1
On 11/03/23 2:46 pm, Vitaly Chikunov wrote:
> fsverity requires fs blocksize to be equal to pagesoze, which is
> different on ppc64 (64K). Default mkfs blocksize if 4K. This difference
> causes mount failure and following error message:
> 
>    INFO: Mounting loopback filesystem
>    mount: /tmp/fsverity-test: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
>           dmesg(1) may have more information after failed mount system call.
>    FAILURE: mounting loopback filesystem
> 
> It's said this limitation is removed in Linux v6.3, but for backward
> compatibility better to leave workaround for it.
> 
> Fixes: b259a2b ("tests: add fsverity measurement test")
> Signed-off-by: Vitaly Chikunov <vt@altlinux.org>

Tested-by: Nageswara R Sastry <rnsastry@linux.ibm.com>

Tested on Power10, PowerVM:

1. Kernel version: 6.3-rc6
with or with out this patch the fsverity.test result is same ie:
PASS: 6 SKIP: 0 FAIL: 0


2. Kernel version: 6.2.6

with out patch:
seen the reported error ie
mount: /tmp/fsverity-test: wrong fs type, bad option, bad superblock on 
/dev/loop0, missing codepage or helper program, or other error.
FAILURE: mounting loopback filesystem

with patch:
PASS: 4 SKIP: 2 FAIL: 0



> ---
>   tests/fsverity.test | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/fsverity.test b/tests/fsverity.test
> index 01d5c35..5ad7634 100755
> --- a/tests/fsverity.test
> +++ b/tests/fsverity.test
> @@ -120,6 +120,9 @@ create_loopback_file() {
>   	case $fs_type in
>   	ext4|f2fs)
>   		options="-O verity"
> +		# verity requires blocksize to be equal to pagesize.
> +		pagesize=$(getconf PAGE_SIZE)
> +		[ "$pagesize" -eq 4096 ] || options+=" -b $pagesize"
>   		;;
>   	btrfs)
>   		;;
> @@ -136,7 +139,7 @@ create_loopback_file() {
>   	fi
>   
>   	echo "INFO: Building an $fs_type filesystem"
> -	if ! mkfs -t "$fs_type" -q "${TST_IMG}" "$options"; then
> +	if ! mkfs -t "$fs_type" -q "${TST_IMG}" $options; then
>   		echo "${RED}FAILURE: Creating $fs_type filesystem${NORM}"
>   		exit "$FAIL"
>   	fi
Mimi Zohar March 14, 2023, 10:38 p.m. UTC | #2
On Sat, 2023-03-11 at 12:16 +0300, Vitaly Chikunov wrote:
> fsverity requires fs blocksize to be equal to pagesoze, which is
> different on ppc64 (64K). Default mkfs blocksize if 4K. This difference
> causes mount failure and following error message:
> 
>   INFO: Mounting loopback filesystem
>   mount: /tmp/fsverity-test: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error.
>          dmesg(1) may have more information after failed mount system call.
>   FAILURE: mounting loopback filesystem
> 
> It's said this limitation is removed in Linux v6.3, but for backward
> compatibility better to leave workaround for it.
> 
> Fixes: b259a2b ("tests: add fsverity measurement test")
> Signed-off-by: Vitaly Chikunov <vt@altlinux.org>

Thanks, Vitaly.  The patch is now queued in next-testing.
diff mbox series

Patch

diff --git a/tests/fsverity.test b/tests/fsverity.test
index 01d5c35..5ad7634 100755
--- a/tests/fsverity.test
+++ b/tests/fsverity.test
@@ -120,6 +120,9 @@  create_loopback_file() {
 	case $fs_type in
 	ext4|f2fs)
 		options="-O verity"
+		# verity requires blocksize to be equal to pagesize.
+		pagesize=$(getconf PAGE_SIZE)
+		[ "$pagesize" -eq 4096 ] || options+=" -b $pagesize"
 		;;
 	btrfs)
 		;;
@@ -136,7 +139,7 @@  create_loopback_file() {
 	fi
 
 	echo "INFO: Building an $fs_type filesystem"
-	if ! mkfs -t "$fs_type" -q "${TST_IMG}" "$options"; then
+	if ! mkfs -t "$fs_type" -q "${TST_IMG}" $options; then
 		echo "${RED}FAILURE: Creating $fs_type filesystem${NORM}"
 		exit "$FAIL"
 	fi