From patchwork Fri Jul 5 07:26:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 11032097 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B02D11510 for ; Fri, 5 Jul 2019 07:27:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9E73B28A28 for ; Fri, 5 Jul 2019 07:27:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 92E6928A2E; Fri, 5 Jul 2019 07:27:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2FB0A28A28 for ; Fri, 5 Jul 2019 07:27:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727919AbfGEH1F (ORCPT ); Fri, 5 Jul 2019 03:27:05 -0400 Received: from mx2.suse.de ([195.135.220.15]:58648 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725863AbfGEH1F (ORCPT ); Fri, 5 Jul 2019 03:27:05 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 0774FAFCB for ; Fri, 5 Jul 2019 07:27:04 +0000 (UTC) From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 1/5] btrfs-progs: mkfs: Apply the sectorsize user specified on 64k page size system Date: Fri, 5 Jul 2019 15:26:47 +0800 Message-Id: <20190705072651.25150-2-wqu@suse.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190705072651.25150-1-wqu@suse.com> References: <20190705072651.25150-1-wqu@suse.com> MIME-Version: 1.0 Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP [BUG] On aarch64 with 64k page size, mkfs.btrfs -s option doesn't work: $ mkfs.btrfs -s 4096 ~/10G.img -f btrfs-progs v5.1.1 See http://btrfs.wiki.kernel.org for more information. Label: (null) UUID: c2a09334-aaca-4980-aefa-4b3e27390658 Node size: 65536 Sector size: 65536 << Still 64K, not 4K Filesystem size: 10.00GiB Block group profiles: Data: single 8.00MiB Metadata: DUP 256.00MiB System: DUP 8.00MiB SSD detected: no Incompat features: extref, skinny-metadata Number of devices: 1 Devices: ID SIZE PATH 1 10.00GiB /home/adam/10G.img [CAUSE] This is because we automatically detect sectorsize based on current system page size, then get the maxium number between user specified -s parameter and system page size. It's fine for x86 as it has fixed page size 4K, also the minimium valid sector size. But for system like aarch64 or ppc64le, where we can have 64K page size, and it makes us unable to create a 4k sector sized btrfs. [FIX] Only do auto detect when no -s|--sectorsize option is specified. Signed-off-by: Qu Wenruo --- mkfs/main.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/mkfs/main.c b/mkfs/main.c index 8dbec0717b89..26d84e9dafc3 100644 --- a/mkfs/main.c +++ b/mkfs/main.c @@ -817,6 +817,7 @@ int BOX_MAIN(mkfs)(int argc, char **argv) char *source_dir = NULL; bool source_dir_set = false; bool shrink_rootdir = false; + bool sectorsize_set = false; u64 source_dir_size = 0; u64 min_dev_size; u64 shrink_size; @@ -906,6 +907,7 @@ int BOX_MAIN(mkfs)(int argc, char **argv) } case 's': sectorsize = parse_size(optarg); + sectorsize_set = true; break; case 'b': block_count = parse_size(optarg); @@ -943,7 +945,15 @@ int BOX_MAIN(mkfs)(int argc, char **argv) printf("See %s for more information.\n\n", PACKAGE_URL); } - sectorsize = max(sectorsize, (u32)sysconf(_SC_PAGESIZE)); + if (!sectorsize_set) + sectorsize = max(sectorsize, (u32)sysconf(_SC_PAGESIZE)); + if (!is_power_of_2(sectorsize) || sectorsize < 4096 || + sectorsize > SZ_64K) { + error( + "invalid sectorsize: %u, expect either 4k, 8k, 16k, 32k or 64k", + sectorsize); + goto error; + } stripesize = sectorsize; saved_optind = optind; dev_cnt = argc - optind; From patchwork Fri Jul 5 07:26:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 11032099 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 01D841510 for ; Fri, 5 Jul 2019 07:27:09 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E3AC128A28 for ; Fri, 5 Jul 2019 07:27:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D870428A2E; Fri, 5 Jul 2019 07:27:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 602A228A28 for ; Fri, 5 Jul 2019 07:27:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727924AbfGEH1H (ORCPT ); Fri, 5 Jul 2019 03:27:07 -0400 Received: from mx2.suse.de ([195.135.220.15]:58654 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725863AbfGEH1H (ORCPT ); Fri, 5 Jul 2019 03:27:07 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 93639AFCB for ; Fri, 5 Jul 2019 07:27:05 +0000 (UTC) From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 2/5] btrfs-progs: fsck-tests: Check if current kernel can mount fs with specified sector size Date: Fri, 5 Jul 2019 15:26:48 +0800 Message-Id: <20190705072651.25150-3-wqu@suse.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190705072651.25150-1-wqu@suse.com> References: <20190705072651.25150-1-wqu@suse.com> MIME-Version: 1.0 Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP [BUG] When doing test on platforms with page size other than 4K (e.g aarch64 can use 64K page size, or ppc64le), certain test wills fail like: [TEST/fsck] 012-leaf-corruption mount: /home/adam/btrfs-progs/tests/mnt: wrong fs type, bad option, bad superblock on /dev/loop4, missing codepage or helper program, or other error. find: '/home/adam/btrfs-progs/tests//mnt/lost+found': No such file or directory inode 1862 not recovered correctly test failed for case 012-leaf-corruption [TEST/fsck] 028-unaligned-super-dev-sizes failed: mount -t btrfs -o loop ./dev_and_super_mismatch_unaligned.raw.restored /home/adam/btrfs-progs/tests//mnt test failed for case 028-unaligned-super-dev-sizes [TEST/fsck] 037-freespacetree-repair failed: /home/adam/btrfs-progs/mkfs.btrfs -f -n 4k /home/adam/btrfs-progs/tests//test.img test failed for case 037-freespacetree-repair [CAUSE] For fsck/012 and fsck/028, it's caused by the lack of subpage size sector size support, thus we require kernel page size to match on-disk sector size: BTRFS error (device loop4): sectorsize 4096 not supported yet, only support 65536 BTRFS error (device loop4): superblock contains fatal errors BTRFS error (device loop4): open_ctree failed For fsck/037, it's mkfs causing the problem as we're using 4k nodesize, but on 64K page sized system, we will use 64K sectorsize and cause conflicts. [FIX] Considering it's easier and easier to get aarch64 boards with enough performance (e.g rpi4, rk3399, S922) to compile kernel and run tests, let's skip such tests before widespread complain comes. This patch will introduce a new check, check_prereq_mount_with_sectorsize(), which will test if kernel can mount btrfs with specified sectorsize. So that even one day we support subpage sized sectorsize, we won't need to update test case again. For fsck/037, also specify sector size manually. And since in that case we still need to mount the fs, also add check_prereq_mount_with_sectorsize() call. Signed-off-by: Qu Wenruo --- tests/common | 29 +++++++++++++++++++ tests/fsck-tests/012-leaf-corruption/test.sh | 1 + .../028-unaligned-super-dev-sizes/test.sh | 1 + .../037-freespacetree-repair/test.sh | 3 +- 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/tests/common b/tests/common index 79a16f1e187d..5ad16b69b61d 100644 --- a/tests/common +++ b/tests/common @@ -306,6 +306,35 @@ check_prereq() fi } +# Require to mount images with speicified sectorsize +# This is to make sure we can run this test on different arch +# (e.g aarch64 with 64K pagesize) +check_prereq_mount_with_sectorsize() +{ + prepare_test_dev 128M + check_prereq mkfs.btrfs + setup_root_helper + + local sectorsize=$1 + local loop_opt + + if [[ -b "$TEST_DEV" ]]; then + loop_opt="" + elif [[ -f "$TEST_DEV" ]]; then + loop_opt="-o loop" + else + _fail "Invalid \$TEST_DEV: $TEST_DEV" + fi + + run_check_mkfs_test_dev -f -s $sectorsize + $SUDO_HELPER mount -t btrfs $loop_opt "$TEST_DEV" "$TEST_MNT" \ + &> /dev/null + if [ $? -ne 0 ]; then + _not_run "kernel doesn't support sectorsize $sectorsize" + fi + run_check_umount_test_dev +} + check_global_prereq() { which "$1" &> /dev/null diff --git a/tests/fsck-tests/012-leaf-corruption/test.sh b/tests/fsck-tests/012-leaf-corruption/test.sh index 68d9f695d4de..d5da1d210f28 100755 --- a/tests/fsck-tests/012-leaf-corruption/test.sh +++ b/tests/fsck-tests/012-leaf-corruption/test.sh @@ -107,6 +107,7 @@ check_leaf_corrupt_no_data_ext() setup_root_helper +check_prereq_mount_with_sectorsize 4096 generate_leaf_corrupt_no_data_ext test.img check_image test.img check_leaf_corrupt_no_data_ext test.img diff --git a/tests/fsck-tests/028-unaligned-super-dev-sizes/test.sh b/tests/fsck-tests/028-unaligned-super-dev-sizes/test.sh index 4015df2d8570..49fa35241d04 100755 --- a/tests/fsck-tests/028-unaligned-super-dev-sizes/test.sh +++ b/tests/fsck-tests/028-unaligned-super-dev-sizes/test.sh @@ -6,6 +6,7 @@ source "$TEST_TOP/common" check_prereq btrfs +check_prereq_mount_with_sectorsize 4096 setup_root_helper check_all_images diff --git a/tests/fsck-tests/037-freespacetree-repair/test.sh b/tests/fsck-tests/037-freespacetree-repair/test.sh index 7f547a33512d..32e6651ac705 100755 --- a/tests/fsck-tests/037-freespacetree-repair/test.sh +++ b/tests/fsck-tests/037-freespacetree-repair/test.sh @@ -10,6 +10,7 @@ prepare_test_dev 256M check_prereq btrfs check_prereq mkfs.btrfs +check_prereq_mount_with_sectorsize 4096 check_global_prereq grep check_global_prereq tail check_global_prereq head @@ -55,7 +56,7 @@ if ! [ -f "/sys/fs/btrfs/features/free_space_tree" ]; then exit fi -run_check_mkfs_test_dev -n 4k +run_check_mkfs_test_dev -s 4k -n 4k run_check_mount_test_dev -oclear_cache,space_cache=v2 # create files which will populate the FST From patchwork Fri Jul 5 07:26:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 11032101 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5E5A0138D for ; Fri, 5 Jul 2019 07:27:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4BEDF28A28 for ; Fri, 5 Jul 2019 07:27:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4083628A2E; Fri, 5 Jul 2019 07:27:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D2A8228A28 for ; Fri, 5 Jul 2019 07:27:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727935AbfGEH1K (ORCPT ); Fri, 5 Jul 2019 03:27:10 -0400 Received: from mx2.suse.de ([195.135.220.15]:58666 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725863AbfGEH1J (ORCPT ); Fri, 5 Jul 2019 03:27:09 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id AFD5DAFCB for ; Fri, 5 Jul 2019 07:27:08 +0000 (UTC) From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 3/5] btrfs-progs: mkfs-tests: Skip 010-minimal-size if we can't mount with 4k sector size Date: Fri, 5 Jul 2019 15:26:49 +0800 Message-Id: <20190705072651.25150-4-wqu@suse.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190705072651.25150-1-wqu@suse.com> References: <20190705072651.25150-1-wqu@suse.com> MIME-Version: 1.0 Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP [BUG] Test case 010-minimal-size fails on aarch64 with 64K page size: [TEST/mkfs] 010-minimal-size failed: /home/adam/btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single /home/adam/btrfs-progs/tests//test.img test failed for case 010-minimal-size make: *** [Makefile:361: test-mkfs] Error 1 [CAUSE] Mkfs.btrfs defaults to page size as sector size. However this test uses 4k, 16k, 32K and 64K as node size. 4K node size will conflict with 64K sector size. [FIX] - Specify sector size 4K manually So at least no conflict at mkfs time. - Skip the test case if kernel can't mount with 4k sector size So once we add such support, the test can be automatically re-enabled. Signed-off-by: Qu Wenruo --- tests/mkfs-tests/010-minimal-size/test.sh | 41 ++++++++++++----------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/tests/mkfs-tests/010-minimal-size/test.sh b/tests/mkfs-tests/010-minimal-size/test.sh index 8480e4c5ae23..b49fad63e519 100755 --- a/tests/mkfs-tests/010-minimal-size/test.sh +++ b/tests/mkfs-tests/010-minimal-size/test.sh @@ -5,6 +5,7 @@ source "$TEST_TOP/common" check_prereq mkfs.btrfs check_prereq btrfs +check_prereq_mount_with_sectorsize 4096 setup_root_helper @@ -24,20 +25,20 @@ do_test() run_check_umount_test_dev } -do_test -n 4k -m single -d single -do_test -n 4k -m single -d dup -do_test -n 4k -m dup -d single -do_test -n 4k -m dup -d dup +do_test -s 4k -n 4k -m single -d single +do_test -s 4k -n 4k -m single -d dup +do_test -s 4k -n 4k -m dup -d single +do_test -s 4k -n 4k -m dup -d dup -do_test -n 8k -m single -d single -do_test -n 8k -m single -d dup -do_test -n 8k -m dup -d single -do_test -n 8k -m dup -d dup +do_test -s 4k -n 8k -m single -d single +do_test -s 4k -n 8k -m single -d dup +do_test -s 4k -n 8k -m dup -d single +do_test -s 4k -n 8k -m dup -d dup -do_test -n 16k -m single -d single -do_test -n 16k -m single -d dup -do_test -n 16k -m dup -d single -do_test -n 16k -m dup -d dup +do_test -s 4k -n 16k -m single -d single +do_test -s 4k -n 16k -m single -d dup +do_test -s 4k -n 16k -m dup -d single +do_test -s 4k -n 16k -m dup -d dup # Temporary: disable the following tests as they fail inside travis but run # fine otherwise. This is probably caused by kernel version, 4.4 fails and 4.14 @@ -52,12 +53,12 @@ if [ "$TRAVIS" = true ]; then exit 0 fi -do_test -n 32k -m single -d single -do_test -n 32k -m single -d dup -do_test -n 32k -m dup -d single -do_test -n 32k -m dup -d dup +do_test -s 4k -n 32k -m single -d single +do_test -s 4k -n 32k -m single -d dup +do_test -s 4k -n 32k -m dup -d single +do_test -s 4k -n 32k -m dup -d dup -do_test -n 64k -m single -d single -do_test -n 64k -m single -d dup -do_test -n 64k -m dup -d single -do_test -n 64k -m dup -d dup +do_test -s 4k -n 64k -m single -d single +do_test -s 4k -n 64k -m single -d dup +do_test -s 4k -n 64k -m dup -d single +do_test -s 4k -n 64k -m dup -d dup From patchwork Fri Jul 5 07:26:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 11032103 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 176E4138D for ; Fri, 5 Jul 2019 07:27:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 052ED28A28 for ; Fri, 5 Jul 2019 07:27:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EDD5028A2E; Fri, 5 Jul 2019 07:27:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9E34E28A28 for ; Fri, 5 Jul 2019 07:27:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727949AbfGEH1L (ORCPT ); Fri, 5 Jul 2019 03:27:11 -0400 Received: from mx2.suse.de ([195.135.220.15]:58674 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725863AbfGEH1L (ORCPT ); Fri, 5 Jul 2019 03:27:11 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 45DDEAFCB for ; Fri, 5 Jul 2019 07:27:10 +0000 (UTC) From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 4/5] btrfs-progs: misc-tests: Make test cases work or skipped on 64K page size system Date: Fri, 5 Jul 2019 15:26:50 +0800 Message-Id: <20190705072651.25150-5-wqu@suse.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190705072651.25150-1-wqu@suse.com> References: <20190705072651.25150-1-wqu@suse.com> MIME-Version: 1.0 Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP [BUG] The following test cases fails on aarch64 64K page size mode: [TEST/misc] 010-convert-delete-ext2-subvol failed: mount -t btrfs -o loop /home/adam/btrfs-progs/tests//test.img /home/adam/btrfs-progs/tests//mnt test failed for case 010-convert-delete-ext2-subvol make: *** [Makefile:387: test-misc] Error 1 [CAUSE] Most of them are caused by the lack of subpage sized sector size support. Or the conflicts sector size (64K) and nodesize (smaller than 64K). [FIX] Check if the current kernel accepts subpage sized sector size and manually specify 4K sector size. Signed-off-by: Qu Wenruo --- tests/misc-tests/010-convert-delete-ext2-subvol/test.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/misc-tests/010-convert-delete-ext2-subvol/test.sh b/tests/misc-tests/010-convert-delete-ext2-subvol/test.sh index 5f441a7f5eb9..aa741e7aca7f 100755 --- a/tests/misc-tests/010-convert-delete-ext2-subvol/test.sh +++ b/tests/misc-tests/010-convert-delete-ext2-subvol/test.sh @@ -7,12 +7,15 @@ source "$TEST_TOP/common" check_prereq btrfs-convert check_prereq btrfs +check_global_prereq getconf + +page_size=$(getconf PAGESIZE) setup_root_helper prepare_test_dev run_check truncate -s 2G "$TEST_DEV" -run_check mkfs.ext4 -F "$TEST_DEV" +run_check mkfs.ext4 -F "$TEST_DEV" -b $page_size run_check "$TOP/btrfs-convert" "$TEST_DEV" run_check $SUDO_HELPER "$TOP/btrfs" inspect-internal dump-tree "$TEST_DEV" run_check_mount_test_dev From patchwork Fri Jul 5 07:26:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 11032105 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D2854138D for ; Fri, 5 Jul 2019 07:27:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C026E28A28 for ; Fri, 5 Jul 2019 07:27:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B4BBD28A2E; Fri, 5 Jul 2019 07:27:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EB9F328A28 for ; Fri, 5 Jul 2019 07:27:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727952AbfGEH1P (ORCPT ); Fri, 5 Jul 2019 03:27:15 -0400 Received: from mx2.suse.de ([195.135.220.15]:58688 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725863AbfGEH1O (ORCPT ); Fri, 5 Jul 2019 03:27:14 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id D0A4FAFCB for ; Fri, 5 Jul 2019 07:27:11 +0000 (UTC) From: Qu Wenruo To: linux-btrfs@vger.kernel.org Subject: [PATCH 5/5] btrfs-progs: convert-tests: Skip tests if kernel doesn't support subpage sized sector size Date: Fri, 5 Jul 2019 15:26:51 +0800 Message-Id: <20190705072651.25150-6-wqu@suse.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190705072651.25150-1-wqu@suse.com> References: <20190705072651.25150-1-wqu@suse.com> MIME-Version: 1.0 Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Most convert tests needs to mount the converted image, and both reiserfs and ext* uses 4k block size, on 32K page size system we can't mount them and will cause test failure. Skip most of convert tests, except 007-unsupported-block-sizes, which should fail on all systems. Signed-off-by: Qu Wenruo --- tests/convert-tests/001-ext2-basic/test.sh | 1 + tests/convert-tests/002-ext3-basic/test.sh | 1 + tests/convert-tests/003-ext4-basic/test.sh | 1 + tests/convert-tests/004-ext2-backup-superblock-ranges/test.sh | 1 + tests/convert-tests/005-delete-all-rollback/test.sh | 1 + tests/convert-tests/006-large-hole-extent/test.sh | 2 ++ tests/convert-tests/008-readonly-image/test.sh | 1 + tests/convert-tests/009-common-inode-flags/test.sh | 1 + tests/convert-tests/010-reiserfs-basic/test.sh | 2 ++ tests/convert-tests/011-reiserfs-delete-all-rollback/test.sh | 1 + tests/convert-tests/012-reiserfs-large-hole-extent/test.sh | 1 + tests/convert-tests/013-reiserfs-common-inode-flags/test.sh | 1 + tests/convert-tests/014-reiserfs-tail-handling/test.sh | 1 + tests/convert-tests/015-no-rollback-after-balance/test.sh | 1 + tests/convert-tests/016-invalid-large-inline-extent/test.sh | 1 + 15 files changed, 17 insertions(+) diff --git a/tests/convert-tests/001-ext2-basic/test.sh b/tests/convert-tests/001-ext2-basic/test.sh index 74cc74e86fe4..94be68bc6b84 100755 --- a/tests/convert-tests/001-ext2-basic/test.sh +++ b/tests/convert-tests/001-ext2-basic/test.sh @@ -4,6 +4,7 @@ source "$TEST_TOP/common" source "$TEST_TOP/common.convert" setup_root_helper +check_prereq_mount_with_sectorsize 4096 prepare_test_dev check_prereq btrfs-convert check_global_prereq mke2fs diff --git a/tests/convert-tests/002-ext3-basic/test.sh b/tests/convert-tests/002-ext3-basic/test.sh index f08698976c15..57e83681adb7 100755 --- a/tests/convert-tests/002-ext3-basic/test.sh +++ b/tests/convert-tests/002-ext3-basic/test.sh @@ -4,6 +4,7 @@ source "$TEST_TOP/common" source "$TEST_TOP/common.convert" setup_root_helper +check_prereq_mount_with_sectorsize 4096 prepare_test_dev check_prereq btrfs-convert check_global_prereq mke2fs diff --git a/tests/convert-tests/003-ext4-basic/test.sh b/tests/convert-tests/003-ext4-basic/test.sh index c5caf67c9300..d20d854fc387 100755 --- a/tests/convert-tests/003-ext4-basic/test.sh +++ b/tests/convert-tests/003-ext4-basic/test.sh @@ -4,6 +4,7 @@ source "$TEST_TOP/common" source "$TEST_TOP/common.convert" setup_root_helper +check_prereq_mount_with_sectorsize 4096 prepare_test_dev check_prereq btrfs-convert check_global_prereq mke2fs diff --git a/tests/convert-tests/004-ext2-backup-superblock-ranges/test.sh b/tests/convert-tests/004-ext2-backup-superblock-ranges/test.sh index 857e240837dc..620374e857d1 100755 --- a/tests/convert-tests/004-ext2-backup-superblock-ranges/test.sh +++ b/tests/convert-tests/004-ext2-backup-superblock-ranges/test.sh @@ -14,6 +14,7 @@ source "$TEST_TOP/common" check_prereq btrfs-convert check_prereq btrfs +check_prereq_mount_with_sectorsize 4096 check_global_prereq e2fsck check_global_prereq xzcat diff --git a/tests/convert-tests/005-delete-all-rollback/test.sh b/tests/convert-tests/005-delete-all-rollback/test.sh index a5f9d594bfd5..431c642b221d 100755 --- a/tests/convert-tests/005-delete-all-rollback/test.sh +++ b/tests/convert-tests/005-delete-all-rollback/test.sh @@ -8,6 +8,7 @@ source "$TEST_TOP/common.convert" setup_root_helper prepare_test_dev check_prereq btrfs-convert +check_prereq_mount_with_sectorsize 4096 check_global_prereq mke2fs # simple wrapper for a convert test diff --git a/tests/convert-tests/006-large-hole-extent/test.sh b/tests/convert-tests/006-large-hole-extent/test.sh index a37fcbdc99a6..7a974d74e47f 100755 --- a/tests/convert-tests/006-large-hole-extent/test.sh +++ b/tests/convert-tests/006-large-hole-extent/test.sh @@ -11,6 +11,8 @@ source "$TEST_TOP/common.convert" setup_root_helper prepare_test_dev check_prereq btrfs-convert +check_prereq_mount_with_sectorsize 4096 +prepare_test_dev check_global_prereq mke2fs default_mke2fs="mke2fs -t ext4 -b 4096" diff --git a/tests/convert-tests/008-readonly-image/test.sh b/tests/convert-tests/008-readonly-image/test.sh index 1a65ea6b3a19..08d87b0d4433 100755 --- a/tests/convert-tests/008-readonly-image/test.sh +++ b/tests/convert-tests/008-readonly-image/test.sh @@ -7,6 +7,7 @@ source "$TEST_TOP/common.convert" setup_root_helper prepare_test_dev check_prereq btrfs-convert +check_prereq_mount_with_sectorsize 4096 check_global_prereq mke2fs default_mke2fs="mke2fs -t ext4 -b 4096" diff --git a/tests/convert-tests/009-common-inode-flags/test.sh b/tests/convert-tests/009-common-inode-flags/test.sh index 428213bfcb15..22702af338f7 100755 --- a/tests/convert-tests/009-common-inode-flags/test.sh +++ b/tests/convert-tests/009-common-inode-flags/test.sh @@ -7,6 +7,7 @@ source "$TEST_TOP/common.convert" setup_root_helper prepare_test_dev check_prereq btrfs-convert +check_prereq_mount_with_sectorsize 4096 check_global_prereq mke2fs check_global_prereq lsattr check_global_prereq chattr diff --git a/tests/convert-tests/010-reiserfs-basic/test.sh b/tests/convert-tests/010-reiserfs-basic/test.sh index 73652991cc6b..7f14956fd853 100755 --- a/tests/convert-tests/010-reiserfs-basic/test.sh +++ b/tests/convert-tests/010-reiserfs-basic/test.sh @@ -10,6 +10,8 @@ fi setup_root_helper prepare_test_dev check_prereq btrfs-convert +check_prereq_mount_with_sectorsize 4096 +prepare_test_dev check_global_prereq mkreiserfs for feature in '' 'extref' 'skinny-metadata' 'no-holes'; do diff --git a/tests/convert-tests/011-reiserfs-delete-all-rollback/test.sh b/tests/convert-tests/011-reiserfs-delete-all-rollback/test.sh index 28877e142483..36b3b3888ddb 100755 --- a/tests/convert-tests/011-reiserfs-delete-all-rollback/test.sh +++ b/tests/convert-tests/011-reiserfs-delete-all-rollback/test.sh @@ -11,6 +11,7 @@ fi setup_root_helper prepare_test_dev check_prereq btrfs-convert +check_prereq_mount_with_sectorsize 4096 check_global_prereq mkreiserfs # simple wrapper for a convert test diff --git a/tests/convert-tests/012-reiserfs-large-hole-extent/test.sh b/tests/convert-tests/012-reiserfs-large-hole-extent/test.sh index d492779a386b..55d17cd54bf2 100755 --- a/tests/convert-tests/012-reiserfs-large-hole-extent/test.sh +++ b/tests/convert-tests/012-reiserfs-large-hole-extent/test.sh @@ -15,6 +15,7 @@ fi setup_root_helper prepare_test_dev check_prereq btrfs-convert +check_prereq_mount_with_sectorsize 4096 check_global_prereq mkreiserfs default_mkfs="mkreiserfs -b 4096" diff --git a/tests/convert-tests/013-reiserfs-common-inode-flags/test.sh b/tests/convert-tests/013-reiserfs-common-inode-flags/test.sh index 521e8bd4fba4..cf83b29b4d82 100755 --- a/tests/convert-tests/013-reiserfs-common-inode-flags/test.sh +++ b/tests/convert-tests/013-reiserfs-common-inode-flags/test.sh @@ -11,6 +11,7 @@ fi setup_root_helper prepare_test_dev check_prereq btrfs-convert +check_prereq_mount_with_sectorsize 4096 check_global_prereq mkreiserfs check_global_prereq chattr check_global_prereq lsattr diff --git a/tests/convert-tests/014-reiserfs-tail-handling/test.sh b/tests/convert-tests/014-reiserfs-tail-handling/test.sh index 3be2ed5b6299..a2757f4674d6 100755 --- a/tests/convert-tests/014-reiserfs-tail-handling/test.sh +++ b/tests/convert-tests/014-reiserfs-tail-handling/test.sh @@ -16,6 +16,7 @@ fi setup_root_helper prepare_test_dev check_prereq btrfs-convert +check_prereq_mount_with_sectorsize 4096 check_global_prereq md5sum check_global_prereq mkreiserfs diff --git a/tests/convert-tests/015-no-rollback-after-balance/test.sh b/tests/convert-tests/015-no-rollback-after-balance/test.sh index 2f6407f3a5f7..155887879aa2 100755 --- a/tests/convert-tests/015-no-rollback-after-balance/test.sh +++ b/tests/convert-tests/015-no-rollback-after-balance/test.sh @@ -8,6 +8,7 @@ source "$TEST_TOP/common.convert" setup_root_helper prepare_test_dev check_prereq btrfs-convert +check_prereq_mount_with_sectorsize 4096 check_global_prereq mke2fs # convert_test_prep_fs() will create large enough file inside the test device, diff --git a/tests/convert-tests/016-invalid-large-inline-extent/test.sh b/tests/convert-tests/016-invalid-large-inline-extent/test.sh index f37c7c09d2e7..0308dcea13b3 100755 --- a/tests/convert-tests/016-invalid-large-inline-extent/test.sh +++ b/tests/convert-tests/016-invalid-large-inline-extent/test.sh @@ -8,6 +8,7 @@ source "$TEST_TOP/common.convert" setup_root_helper prepare_test_dev check_prereq btrfs-convert +check_prereq_mount_with_sectorsize 4096 check_global_prereq mke2fs convert_test_prep_fs ext4 mke2fs -t ext4 -b 4096