* [f2fs-dev] [PATCH v2] f2fs/015: test mount options @ 2025-07-04 11:48 Chao Yu via Linux-f2fs-devel 2025-07-04 18:14 ` Zorro Lang via Linux-f2fs-devel 0 siblings, 1 reply; 5+ messages in thread From: Chao Yu via Linux-f2fs-devel @ 2025-07-04 11:48 UTC (permalink / raw) To: Zorro Lang, fstests; +Cc: jaegeuk, linux-f2fs-devel As f2fs changes to use new mount APIs, let's add a new testcase to check mount result for all f2fs supported mount options and their combinations, in order to detect any inconsistency during mount. Cc: Jaegeuk Kim <jaegeuk@kernel.org> Signed-off-by: Chao Yu <chao@kernel.org> --- v2: - allow to check mount options w/ zoned device common/rc | 3 + tests/f2fs/015 | 159 ++++++++++++++++++++++++++++++++ tests/f2fs/015.out | 225 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 387 insertions(+) create mode 100755 tests/f2fs/015 create mode 100644 tests/f2fs/015.out diff --git a/common/rc b/common/rc index f71cc8f0..94fdce7e 100644 --- a/common/rc +++ b/common/rc @@ -844,6 +844,9 @@ _test_mkfs() ext2|ext3|ext4) $MKFS_PROG -t $FSTYP -- -F $MKFS_OPTIONS $* $TEST_DEV ;; + f2fs) + $MKFS_PROG -t $FSTYP -- -f $MKFS_OPTIONS $* $TEST_DEV + ;; xfs) _test_options mkfs $MKFS_PROG -t $FSTYP -- -f $TEST_OPTIONS $MKFS_OPTIONS $* $TEST_DEV diff --git a/tests/f2fs/015 b/tests/f2fs/015 new file mode 100755 index 00000000..746e79de --- /dev/null +++ b/tests/f2fs/015 @@ -0,0 +1,159 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2025 Chao Yu. All Rights Reserved. +# +# FS QA Test No. f2fs/015 +# +# This testcase tries to check stability of mount result +# w/ all f2fs supported mount option and their combination. +# +. ./common/preamble +_begin_fstest auto quick +_require_kernel_config CONFIG_F2FS_FS_XATTR +_require_kernel_config CONFIG_F2FS_FS_POSIX_ACL +_require_kernel_config CONFIG_F2FS_FAULT_INJECTION +_require_kernel_config CONFIG_F2FS_FS_COMPRESSION +_require_kernel_config CONFIG_F2FS_FS_LZO +_require_kernel_config CONFIG_F2FS_FS_LZORLE +_require_kernel_config CONFIG_F2FS_FS_LZ4 +_require_kernel_config CONFIG_F2FS_FS_LZ4HC +_require_kernel_config CONFIG_F2FS_FS_ZSTD + +_require_zoned_device "$TEST_DEV" +_test_unmount >> $seqres.full 2>&1 + +options=( +# mount_option mkfs_option + "background_gc=on" "" \ + "background_gc=off" "" \ + "background_gc=sync" "" \ + "background_gc=on" "blkzone" \ + "background_gc=off" "blkzone" \ + "background_gc=sync" "blkzone" \ + "disable_roll_forward" "" \ + "norecovery" "" \ + "discard" "" \ + "nodiscard" "" \ + "no_heap" "" \ + "heap" "" \ + "user_xattr" "" \ + "nouser_xattr" "" \ + "acl" "" \ + "noacl" "" \ + "active_logs=2" "" \ + "active_logs=4" "" \ + "active_logs=6" "" \ + "disable_ext_identify" "" \ + "inline_xattr" "" \ + "noinline_xattr" "" \ + "inline_xattr_size=400" "extra,flexible_inline_xattr"\ + "inline_xattr_size=400" "" \ + "inline_data" "" \ + "noinline_dentry" "" \ + "inline_dentry" "" \ + "noinline_dentry" "" \ + "flush_merge" "" \ + "noflush_merge" "" \ + "barrier" "" \ + "nobarrier" "" \ + "fastboot" "" \ + "extent_cache" "" \ + "noextent_cache" "" \ + "data_flush" "" \ + "reserve_root=32768" "" \ + "resuid=1000" "" \ + "resgid=1000" "" \ + "fault_injection=100" "" \ + "fault_type=4095" "" \ + "mode=adaptive" "" \ + "mode=lfs" "" \ + "mode=fragment:segment" "" \ + "mode=fragment:block" "" \ + "mode=adaptive" "blkzone" \ + "mode=lfs" "blkzone" \ + "mode=fragment:segment" "blkzone" \ + "mode=fragment:block" "blkzone" \ + "usrquota" "" \ + "grpquota" "" \ + "prjquota" "" \ + "usrjquota=ausrquota" "" \ + "grpjquota=agrpquota" "" \ + "prjjquota=aprjquota" "" \ + "jqfmt=vfsold" "" \ + "jqfmt=vfsv0" "" \ + "jqfmt=vfsv1" "" \ + "usrjquota=" "" \ + "grpjquota=" "" \ + "prjjquota=" "" \ + "quota" "" \ + "noquota" "" \ + "alloc_mode=reuse" "" \ + "alloc_mode=default" "" \ + "fsync_mode=posix" "" \ + "fsync_mode=strict" "" \ + "fsync_mode=nobarrier" "" \ + "test_dummy_encryption" "" \ + "test_dummy_encryption=v1" "" \ + "test_dummy_encryption=v2" "" \ + "checkpoint=enable" "" \ + "checkpoint=disable" "" \ + "checkpoint=disable:32768" "" \ + "checkpoint=disable:50%" "" \ + "checkpoint_merge" "" \ + "nocheckpoint_merge" "" \ + "compress_algorithm=lzo" "" \ + "compress_algorithm=lzo" "extra,compression" \ + "compress_algorithm=lz4" "extra,compression" \ + "compress_algorithm=zstd" "extra,compression" \ + "compress_algorithm=lzo-rle" "extra,compression" \ + "compress_algorithm=lz4:3" "extra,compression" \ + "compress_algorithm=zstd:1" "extra,compression" \ + "compress_log_size=8" "extra,compression" \ + "compress_extension=so" "extra,compression" \ + "nocompress_extension=so" "extra,compression" \ + "nocompress_extension=*" "extra,compression" \ + "compress_extension=so,nocompress_extension=so" \ + "extra,compression" \ + "compress_chksum" "extra,compression" \ + "compress_mode=fs" "extra,compression" \ + "compress_mode=user" "extra,compression" \ + "compress_cache" "extra,compression" \ + "inlinecrypt" "" \ + "atgc" "" \ + "discard_unit=block" "" \ + "discard_unit=segment" "" \ + "discard_unit=section" "" \ + "discard_unit=block" "blkzone" \ + "discard_unit=segment" "blkzone" \ + "discard_unit=section" "blkzone" \ + "memory=normal" "" \ + "memory=low" "" \ + "age_extent_cache" "" \ + "errors=panic" "" \ + "errors=continue" "" \ + "errors=remount-ro" "" \ + "nat_bits" "" \ + "atgc,mode=lfs" "" \ + "ro,flush_merge" "" \ + "rw" "ro" \ + "norecovery,ro" "" \ +) + +for ((i=0;i<${#options[@]};i=i+2)) +do + echo "Option#$i: ${options[$i]} : ${options[$((i+1))]}" + if [ "${options[$((i+1))]}" == "blkzone" ]; then + _test_mkfs "-m" >> $seqres.full + _test_mount "-o ${options[$i]}" >> $seqres.full 2>&1 + echo $? + _test_unmount >> $seqres.full 2>&1 + else + _scratch_mkfs "-O ${options[$((i+1))]}" >> $seqres.full + _try_scratch_mount "-o ${options[$i]}" >> $seqres.full 2>&1 + echo $? + _scratch_unmount >> $seqres.full 2>&1 + fi +done + +status=0 +exit diff --git a/tests/f2fs/015.out b/tests/f2fs/015.out new file mode 100644 index 00000000..d7f4e62a --- /dev/null +++ b/tests/f2fs/015.out @@ -0,0 +1,225 @@ +QA output created by 015 +Option#0: background_gc=on : +0 +Option#2: background_gc=off : +0 +Option#4: background_gc=sync : +0 +Option#6: background_gc=on : blkzone +0 +Option#8: background_gc=off : blkzone +32 +Option#10: background_gc=sync : blkzone +0 +Option#12: disable_roll_forward : +0 +Option#14: norecovery : +32 +Option#16: discard : +0 +Option#18: nodiscard : +0 +Option#20: no_heap : +0 +Option#22: heap : +0 +Option#24: user_xattr : +0 +Option#26: nouser_xattr : +0 +Option#28: acl : +0 +Option#30: noacl : +0 +Option#32: active_logs=2 : +0 +Option#34: active_logs=4 : +0 +Option#36: active_logs=6 : +0 +Option#38: disable_ext_identify : +0 +Option#40: inline_xattr : +0 +Option#42: noinline_xattr : +0 +Option#44: inline_xattr_size=400 : extra,flexible_inline_xattr +32 +Option#46: inline_xattr_size=400 : +32 +Option#48: inline_data : +0 +Option#50: noinline_dentry : +0 +Option#52: inline_dentry : +0 +Option#54: noinline_dentry : +0 +Option#56: flush_merge : +0 +Option#58: noflush_merge : +0 +Option#60: barrier : +0 +Option#62: nobarrier : +0 +Option#64: fastboot : +0 +Option#66: extent_cache : +0 +Option#68: noextent_cache : +0 +Option#70: data_flush : +0 +Option#72: reserve_root=32768 : +0 +Option#74: resuid=1000 : +0 +Option#76: resgid=1000 : +0 +Option#78: fault_injection=100 : +0 +Option#80: fault_type=4095 : +0 +Option#82: mode=adaptive : +0 +Option#84: mode=lfs : +0 +Option#86: mode=fragment:segment : +0 +Option#88: mode=fragment:block : +0 +Option#90: mode=adaptive : blkzone +32 +Option#92: mode=lfs : blkzone +0 +Option#94: mode=fragment:segment : blkzone +32 +Option#96: mode=fragment:block : blkzone +32 +Option#98: usrquota : +0 +Option#100: grpquota : +0 +Option#102: prjquota : +32 +Option#104: usrjquota=ausrquota : +32 +Option#106: grpjquota=agrpquota : +32 +Option#108: prjjquota=aprjquota : +32 +Option#110: jqfmt=vfsold : +0 +Option#112: jqfmt=vfsv0 : +0 +Option#114: jqfmt=vfsv1 : +0 +Option#116: usrjquota= : +0 +Option#118: grpjquota= : +0 +Option#120: prjjquota= : +0 +Option#122: quota : +0 +Option#124: noquota : +0 +Option#126: alloc_mode=reuse : +0 +Option#128: alloc_mode=default : +0 +Option#130: fsync_mode=posix : +0 +Option#132: fsync_mode=strict : +0 +Option#134: fsync_mode=nobarrier : +0 +Option#136: test_dummy_encryption : +32 +Option#138: test_dummy_encryption=v1 : +32 +Option#140: test_dummy_encryption=v2 : +32 +Option#142: checkpoint=enable : +0 +Option#144: checkpoint=disable : +0 +Option#146: checkpoint=disable:32768 : +0 +Option#148: checkpoint=disable:50% : +0 +Option#150: checkpoint_merge : +0 +Option#152: nocheckpoint_merge : +0 +Option#154: compress_algorithm=lzo : +0 +Option#156: compress_algorithm=lzo : extra,compression +0 +Option#158: compress_algorithm=lz4 : extra,compression +0 +Option#160: compress_algorithm=zstd : extra,compression +0 +Option#162: compress_algorithm=lzo-rle : extra,compression +0 +Option#164: compress_algorithm=lz4:3 : extra,compression +0 +Option#166: compress_algorithm=zstd:1 : extra,compression +0 +Option#168: compress_log_size=8 : extra,compression +0 +Option#170: compress_extension=so : extra,compression +0 +Option#172: nocompress_extension=so : extra,compression +0 +Option#174: nocompress_extension=* : extra,compression +0 +Option#176: compress_extension=so,nocompress_extension=so : extra,compression +0 +Option#178: compress_chksum : extra,compression +0 +Option#180: compress_mode=fs : extra,compression +0 +Option#182: compress_mode=user : extra,compression +0 +Option#184: compress_cache : extra,compression +0 +Option#186: inlinecrypt : +0 +Option#188: atgc : +0 +Option#190: discard_unit=block : +0 +Option#192: discard_unit=segment : +0 +Option#194: discard_unit=section : +0 +Option#196: discard_unit=block : blkzone +0 +Option#198: discard_unit=segment : blkzone +0 +Option#200: discard_unit=section : blkzone +0 +Option#202: memory=normal : +0 +Option#204: memory=low : +0 +Option#206: age_extent_cache : +0 +Option#208: errors=panic : +0 +Option#210: errors=continue : +0 +Option#212: errors=remount-ro : +0 +Option#214: nat_bits : +0 +Option#216: atgc,mode=lfs : +32 +Option#218: ro,flush_merge : +32 +Option#220: rw : ro +0 +Option#222: norecovery,ro : +0 -- 2.49.0 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [f2fs-dev] [PATCH v2] f2fs/015: test mount options 2025-07-04 11:48 [f2fs-dev] [PATCH v2] f2fs/015: test mount options Chao Yu via Linux-f2fs-devel @ 2025-07-04 18:14 ` Zorro Lang via Linux-f2fs-devel 2025-07-07 9:05 ` Chao Yu via Linux-f2fs-devel 0 siblings, 1 reply; 5+ messages in thread From: Zorro Lang via Linux-f2fs-devel @ 2025-07-04 18:14 UTC (permalink / raw) To: Chao Yu; +Cc: jaegeuk, Zorro Lang, fstests, linux-f2fs-devel On Fri, Jul 04, 2025 at 07:48:18PM +0800, Chao Yu wrote: > As f2fs changes to use new mount APIs, let's add a new testcase > to check mount result for all f2fs supported mount options and > their combinations, in order to detect any inconsistency during > mount. > > Cc: Jaegeuk Kim <jaegeuk@kernel.org> > Signed-off-by: Chao Yu <chao@kernel.org> > --- > v2: > - allow to check mount options w/ zoned device > common/rc | 3 + > tests/f2fs/015 | 159 ++++++++++++++++++++++++++++++++ > tests/f2fs/015.out | 225 +++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 387 insertions(+) > create mode 100755 tests/f2fs/015 > create mode 100644 tests/f2fs/015.out > > diff --git a/common/rc b/common/rc > index f71cc8f0..94fdce7e 100644 > --- a/common/rc > +++ b/common/rc > @@ -844,6 +844,9 @@ _test_mkfs() > ext2|ext3|ext4) > $MKFS_PROG -t $FSTYP -- -F $MKFS_OPTIONS $* $TEST_DEV > ;; > + f2fs) > + $MKFS_PROG -t $FSTYP -- -f $MKFS_OPTIONS $* $TEST_DEV > + ;; > xfs) > _test_options mkfs > $MKFS_PROG -t $FSTYP -- -f $TEST_OPTIONS $MKFS_OPTIONS $* $TEST_DEV > diff --git a/tests/f2fs/015 b/tests/f2fs/015 > new file mode 100755 > index 00000000..746e79de > --- /dev/null > +++ b/tests/f2fs/015 > @@ -0,0 +1,159 @@ > +#! /bin/bash > +# SPDX-License-Identifier: GPL-2.0 > +# Copyright (c) 2025 Chao Yu. All Rights Reserved. > +# > +# FS QA Test No. f2fs/015 > +# > +# This testcase tries to check stability of mount result > +# w/ all f2fs supported mount option and their combination. > +# > +. ./common/preamble > +_begin_fstest auto quick > +_require_kernel_config CONFIG_F2FS_FS_XATTR > +_require_kernel_config CONFIG_F2FS_FS_POSIX_ACL > +_require_kernel_config CONFIG_F2FS_FAULT_INJECTION > +_require_kernel_config CONFIG_F2FS_FS_COMPRESSION > +_require_kernel_config CONFIG_F2FS_FS_LZO > +_require_kernel_config CONFIG_F2FS_FS_LZORLE > +_require_kernel_config CONFIG_F2FS_FS_LZ4 > +_require_kernel_config CONFIG_F2FS_FS_LZ4HC > +_require_kernel_config CONFIG_F2FS_FS_ZSTD > + > +_require_zoned_device "$TEST_DEV" This requirement limit this test case only on zoned device... Maybe you can slip this test case to 2~3 cases, let some common mount options can be tested at first, some unimportant mount options can be tested in another case, then zoned device related mount options be tested in a seperated case ? Thanks, Zorro > +_test_unmount >> $seqres.full 2>&1 > + > +options=( > +# mount_option mkfs_option > + "background_gc=on" "" \ > + "background_gc=off" "" \ > + "background_gc=sync" "" \ > + "background_gc=on" "blkzone" \ > + "background_gc=off" "blkzone" \ > + "background_gc=sync" "blkzone" \ > + "disable_roll_forward" "" \ > + "norecovery" "" \ > + "discard" "" \ > + "nodiscard" "" \ > + "no_heap" "" \ > + "heap" "" \ > + "user_xattr" "" \ > + "nouser_xattr" "" \ > + "acl" "" \ > + "noacl" "" \ > + "active_logs=2" "" \ > + "active_logs=4" "" \ > + "active_logs=6" "" \ > + "disable_ext_identify" "" \ > + "inline_xattr" "" \ > + "noinline_xattr" "" \ > + "inline_xattr_size=400" "extra,flexible_inline_xattr"\ > + "inline_xattr_size=400" "" \ > + "inline_data" "" \ > + "noinline_dentry" "" \ > + "inline_dentry" "" \ > + "noinline_dentry" "" \ > + "flush_merge" "" \ > + "noflush_merge" "" \ > + "barrier" "" \ > + "nobarrier" "" \ > + "fastboot" "" \ > + "extent_cache" "" \ > + "noextent_cache" "" \ > + "data_flush" "" \ > + "reserve_root=32768" "" \ > + "resuid=1000" "" \ > + "resgid=1000" "" \ > + "fault_injection=100" "" \ > + "fault_type=4095" "" \ > + "mode=adaptive" "" \ > + "mode=lfs" "" \ > + "mode=fragment:segment" "" \ > + "mode=fragment:block" "" \ > + "mode=adaptive" "blkzone" \ > + "mode=lfs" "blkzone" \ > + "mode=fragment:segment" "blkzone" \ > + "mode=fragment:block" "blkzone" \ > + "usrquota" "" \ > + "grpquota" "" \ > + "prjquota" "" \ > + "usrjquota=ausrquota" "" \ > + "grpjquota=agrpquota" "" \ > + "prjjquota=aprjquota" "" \ > + "jqfmt=vfsold" "" \ > + "jqfmt=vfsv0" "" \ > + "jqfmt=vfsv1" "" \ > + "usrjquota=" "" \ > + "grpjquota=" "" \ > + "prjjquota=" "" \ > + "quota" "" \ > + "noquota" "" \ > + "alloc_mode=reuse" "" \ > + "alloc_mode=default" "" \ > + "fsync_mode=posix" "" \ > + "fsync_mode=strict" "" \ > + "fsync_mode=nobarrier" "" \ > + "test_dummy_encryption" "" \ > + "test_dummy_encryption=v1" "" \ > + "test_dummy_encryption=v2" "" \ > + "checkpoint=enable" "" \ > + "checkpoint=disable" "" \ > + "checkpoint=disable:32768" "" \ > + "checkpoint=disable:50%" "" \ > + "checkpoint_merge" "" \ > + "nocheckpoint_merge" "" \ > + "compress_algorithm=lzo" "" \ > + "compress_algorithm=lzo" "extra,compression" \ > + "compress_algorithm=lz4" "extra,compression" \ > + "compress_algorithm=zstd" "extra,compression" \ > + "compress_algorithm=lzo-rle" "extra,compression" \ > + "compress_algorithm=lz4:3" "extra,compression" \ > + "compress_algorithm=zstd:1" "extra,compression" \ > + "compress_log_size=8" "extra,compression" \ > + "compress_extension=so" "extra,compression" \ > + "nocompress_extension=so" "extra,compression" \ > + "nocompress_extension=*" "extra,compression" \ > + "compress_extension=so,nocompress_extension=so" \ > + "extra,compression" \ > + "compress_chksum" "extra,compression" \ > + "compress_mode=fs" "extra,compression" \ > + "compress_mode=user" "extra,compression" \ > + "compress_cache" "extra,compression" \ > + "inlinecrypt" "" \ > + "atgc" "" \ > + "discard_unit=block" "" \ > + "discard_unit=segment" "" \ > + "discard_unit=section" "" \ > + "discard_unit=block" "blkzone" \ > + "discard_unit=segment" "blkzone" \ > + "discard_unit=section" "blkzone" \ > + "memory=normal" "" \ > + "memory=low" "" \ > + "age_extent_cache" "" \ > + "errors=panic" "" \ > + "errors=continue" "" \ > + "errors=remount-ro" "" \ > + "nat_bits" "" \ > + "atgc,mode=lfs" "" \ > + "ro,flush_merge" "" \ > + "rw" "ro" \ > + "norecovery,ro" "" \ > +) > + > +for ((i=0;i<${#options[@]};i=i+2)) > +do > + echo "Option#$i: ${options[$i]} : ${options[$((i+1))]}" > + if [ "${options[$((i+1))]}" == "blkzone" ]; then > + _test_mkfs "-m" >> $seqres.full > + _test_mount "-o ${options[$i]}" >> $seqres.full 2>&1 > + echo $? > + _test_unmount >> $seqres.full 2>&1 > + else > + _scratch_mkfs "-O ${options[$((i+1))]}" >> $seqres.full > + _try_scratch_mount "-o ${options[$i]}" >> $seqres.full 2>&1 > + echo $? > + _scratch_unmount >> $seqres.full 2>&1 > + fi > +done > + > +status=0 > +exit > diff --git a/tests/f2fs/015.out b/tests/f2fs/015.out > new file mode 100644 > index 00000000..d7f4e62a > --- /dev/null > +++ b/tests/f2fs/015.out > @@ -0,0 +1,225 @@ > +QA output created by 015 > +Option#0: background_gc=on : > +0 > +Option#2: background_gc=off : > +0 > +Option#4: background_gc=sync : > +0 > +Option#6: background_gc=on : blkzone > +0 > +Option#8: background_gc=off : blkzone > +32 > +Option#10: background_gc=sync : blkzone > +0 > +Option#12: disable_roll_forward : > +0 > +Option#14: norecovery : > +32 > +Option#16: discard : > +0 > +Option#18: nodiscard : > +0 > +Option#20: no_heap : > +0 > +Option#22: heap : > +0 > +Option#24: user_xattr : > +0 > +Option#26: nouser_xattr : > +0 > +Option#28: acl : > +0 > +Option#30: noacl : > +0 > +Option#32: active_logs=2 : > +0 > +Option#34: active_logs=4 : > +0 > +Option#36: active_logs=6 : > +0 > +Option#38: disable_ext_identify : > +0 > +Option#40: inline_xattr : > +0 > +Option#42: noinline_xattr : > +0 > +Option#44: inline_xattr_size=400 : extra,flexible_inline_xattr > +32 > +Option#46: inline_xattr_size=400 : > +32 > +Option#48: inline_data : > +0 > +Option#50: noinline_dentry : > +0 > +Option#52: inline_dentry : > +0 > +Option#54: noinline_dentry : > +0 > +Option#56: flush_merge : > +0 > +Option#58: noflush_merge : > +0 > +Option#60: barrier : > +0 > +Option#62: nobarrier : > +0 > +Option#64: fastboot : > +0 > +Option#66: extent_cache : > +0 > +Option#68: noextent_cache : > +0 > +Option#70: data_flush : > +0 > +Option#72: reserve_root=32768 : > +0 > +Option#74: resuid=1000 : > +0 > +Option#76: resgid=1000 : > +0 > +Option#78: fault_injection=100 : > +0 > +Option#80: fault_type=4095 : > +0 > +Option#82: mode=adaptive : > +0 > +Option#84: mode=lfs : > +0 > +Option#86: mode=fragment:segment : > +0 > +Option#88: mode=fragment:block : > +0 > +Option#90: mode=adaptive : blkzone > +32 > +Option#92: mode=lfs : blkzone > +0 > +Option#94: mode=fragment:segment : blkzone > +32 > +Option#96: mode=fragment:block : blkzone > +32 > +Option#98: usrquota : > +0 > +Option#100: grpquota : > +0 > +Option#102: prjquota : > +32 > +Option#104: usrjquota=ausrquota : > +32 > +Option#106: grpjquota=agrpquota : > +32 > +Option#108: prjjquota=aprjquota : > +32 > +Option#110: jqfmt=vfsold : > +0 > +Option#112: jqfmt=vfsv0 : > +0 > +Option#114: jqfmt=vfsv1 : > +0 > +Option#116: usrjquota= : > +0 > +Option#118: grpjquota= : > +0 > +Option#120: prjjquota= : > +0 > +Option#122: quota : > +0 > +Option#124: noquota : > +0 > +Option#126: alloc_mode=reuse : > +0 > +Option#128: alloc_mode=default : > +0 > +Option#130: fsync_mode=posix : > +0 > +Option#132: fsync_mode=strict : > +0 > +Option#134: fsync_mode=nobarrier : > +0 > +Option#136: test_dummy_encryption : > +32 > +Option#138: test_dummy_encryption=v1 : > +32 > +Option#140: test_dummy_encryption=v2 : > +32 > +Option#142: checkpoint=enable : > +0 > +Option#144: checkpoint=disable : > +0 > +Option#146: checkpoint=disable:32768 : > +0 > +Option#148: checkpoint=disable:50% : > +0 > +Option#150: checkpoint_merge : > +0 > +Option#152: nocheckpoint_merge : > +0 > +Option#154: compress_algorithm=lzo : > +0 > +Option#156: compress_algorithm=lzo : extra,compression > +0 > +Option#158: compress_algorithm=lz4 : extra,compression > +0 > +Option#160: compress_algorithm=zstd : extra,compression > +0 > +Option#162: compress_algorithm=lzo-rle : extra,compression > +0 > +Option#164: compress_algorithm=lz4:3 : extra,compression > +0 > +Option#166: compress_algorithm=zstd:1 : extra,compression > +0 > +Option#168: compress_log_size=8 : extra,compression > +0 > +Option#170: compress_extension=so : extra,compression > +0 > +Option#172: nocompress_extension=so : extra,compression > +0 > +Option#174: nocompress_extension=* : extra,compression > +0 > +Option#176: compress_extension=so,nocompress_extension=so : extra,compression > +0 > +Option#178: compress_chksum : extra,compression > +0 > +Option#180: compress_mode=fs : extra,compression > +0 > +Option#182: compress_mode=user : extra,compression > +0 > +Option#184: compress_cache : extra,compression > +0 > +Option#186: inlinecrypt : > +0 > +Option#188: atgc : > +0 > +Option#190: discard_unit=block : > +0 > +Option#192: discard_unit=segment : > +0 > +Option#194: discard_unit=section : > +0 > +Option#196: discard_unit=block : blkzone > +0 > +Option#198: discard_unit=segment : blkzone > +0 > +Option#200: discard_unit=section : blkzone > +0 > +Option#202: memory=normal : > +0 > +Option#204: memory=low : > +0 > +Option#206: age_extent_cache : > +0 > +Option#208: errors=panic : > +0 > +Option#210: errors=continue : > +0 > +Option#212: errors=remount-ro : > +0 > +Option#214: nat_bits : > +0 > +Option#216: atgc,mode=lfs : > +32 > +Option#218: ro,flush_merge : > +32 > +Option#220: rw : ro > +0 > +Option#222: norecovery,ro : > +0 > -- > 2.49.0 > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [f2fs-dev] [PATCH v2] f2fs/015: test mount options 2025-07-04 18:14 ` Zorro Lang via Linux-f2fs-devel @ 2025-07-07 9:05 ` Chao Yu via Linux-f2fs-devel 2025-07-08 14:29 ` Zorro Lang via Linux-f2fs-devel 0 siblings, 1 reply; 5+ messages in thread From: Chao Yu via Linux-f2fs-devel @ 2025-07-07 9:05 UTC (permalink / raw) To: Zorro Lang; +Cc: jaegeuk, Zorro Lang, fstests, linux-f2fs-devel On 7/5/25 02:14, Zorro Lang wrote: > On Fri, Jul 04, 2025 at 07:48:18PM +0800, Chao Yu wrote: >> As f2fs changes to use new mount APIs, let's add a new testcase >> to check mount result for all f2fs supported mount options and >> their combinations, in order to detect any inconsistency during >> mount. >> >> Cc: Jaegeuk Kim <jaegeuk@kernel.org> >> Signed-off-by: Chao Yu <chao@kernel.org> >> --- >> v2: >> - allow to check mount options w/ zoned device >> common/rc | 3 + >> tests/f2fs/015 | 159 ++++++++++++++++++++++++++++++++ >> tests/f2fs/015.out | 225 +++++++++++++++++++++++++++++++++++++++++++++ >> 3 files changed, 387 insertions(+) >> create mode 100755 tests/f2fs/015 >> create mode 100644 tests/f2fs/015.out >> >> diff --git a/common/rc b/common/rc >> index f71cc8f0..94fdce7e 100644 >> --- a/common/rc >> +++ b/common/rc >> @@ -844,6 +844,9 @@ _test_mkfs() >> ext2|ext3|ext4) >> $MKFS_PROG -t $FSTYP -- -F $MKFS_OPTIONS $* $TEST_DEV >> ;; >> + f2fs) >> + $MKFS_PROG -t $FSTYP -- -f $MKFS_OPTIONS $* $TEST_DEV >> + ;; >> xfs) >> _test_options mkfs >> $MKFS_PROG -t $FSTYP -- -f $TEST_OPTIONS $MKFS_OPTIONS $* $TEST_DEV >> diff --git a/tests/f2fs/015 b/tests/f2fs/015 >> new file mode 100755 >> index 00000000..746e79de >> --- /dev/null >> +++ b/tests/f2fs/015 >> @@ -0,0 +1,159 @@ >> +#! /bin/bash >> +# SPDX-License-Identifier: GPL-2.0 >> +# Copyright (c) 2025 Chao Yu. All Rights Reserved. >> +# >> +# FS QA Test No. f2fs/015 >> +# >> +# This testcase tries to check stability of mount result >> +# w/ all f2fs supported mount option and their combination. >> +# >> +. ./common/preamble >> +_begin_fstest auto quick >> +_require_kernel_config CONFIG_F2FS_FS_XATTR >> +_require_kernel_config CONFIG_F2FS_FS_POSIX_ACL >> +_require_kernel_config CONFIG_F2FS_FAULT_INJECTION >> +_require_kernel_config CONFIG_F2FS_FS_COMPRESSION >> +_require_kernel_config CONFIG_F2FS_FS_LZO >> +_require_kernel_config CONFIG_F2FS_FS_LZORLE >> +_require_kernel_config CONFIG_F2FS_FS_LZ4 >> +_require_kernel_config CONFIG_F2FS_FS_LZ4HC >> +_require_kernel_config CONFIG_F2FS_FS_ZSTD >> + >> +_require_zoned_device "$TEST_DEV" > > This requirement limit this test case only on zoned device... > Maybe you can slip this test case to 2~3 cases, let some common > mount options can be tested at first, some unimportant mount > options can be tested in another case, then zoned device related > mount options be tested in a seperated case ? Good idea, do you want to uplift common mount option testcase to generic/ directory? or is it fine to leave it in f2fs/ now? Thanks, > > Thanks, > Zorro > >> +_test_unmount >> $seqres.full 2>&1 >> + >> +options=( >> +# mount_option mkfs_option >> + "background_gc=on" "" \ >> + "background_gc=off" "" \ >> + "background_gc=sync" "" \ >> + "background_gc=on" "blkzone" \ >> + "background_gc=off" "blkzone" \ >> + "background_gc=sync" "blkzone" \ >> + "disable_roll_forward" "" \ >> + "norecovery" "" \ >> + "discard" "" \ >> + "nodiscard" "" \ >> + "no_heap" "" \ >> + "heap" "" \ >> + "user_xattr" "" \ >> + "nouser_xattr" "" \ >> + "acl" "" \ >> + "noacl" "" \ >> + "active_logs=2" "" \ >> + "active_logs=4" "" \ >> + "active_logs=6" "" \ >> + "disable_ext_identify" "" \ >> + "inline_xattr" "" \ >> + "noinline_xattr" "" \ >> + "inline_xattr_size=400" "extra,flexible_inline_xattr"\ >> + "inline_xattr_size=400" "" \ >> + "inline_data" "" \ >> + "noinline_dentry" "" \ >> + "inline_dentry" "" \ >> + "noinline_dentry" "" \ >> + "flush_merge" "" \ >> + "noflush_merge" "" \ >> + "barrier" "" \ >> + "nobarrier" "" \ >> + "fastboot" "" \ >> + "extent_cache" "" \ >> + "noextent_cache" "" \ >> + "data_flush" "" \ >> + "reserve_root=32768" "" \ >> + "resuid=1000" "" \ >> + "resgid=1000" "" \ >> + "fault_injection=100" "" \ >> + "fault_type=4095" "" \ >> + "mode=adaptive" "" \ >> + "mode=lfs" "" \ >> + "mode=fragment:segment" "" \ >> + "mode=fragment:block" "" \ >> + "mode=adaptive" "blkzone" \ >> + "mode=lfs" "blkzone" \ >> + "mode=fragment:segment" "blkzone" \ >> + "mode=fragment:block" "blkzone" \ >> + "usrquota" "" \ >> + "grpquota" "" \ >> + "prjquota" "" \ >> + "usrjquota=ausrquota" "" \ >> + "grpjquota=agrpquota" "" \ >> + "prjjquota=aprjquota" "" \ >> + "jqfmt=vfsold" "" \ >> + "jqfmt=vfsv0" "" \ >> + "jqfmt=vfsv1" "" \ >> + "usrjquota=" "" \ >> + "grpjquota=" "" \ >> + "prjjquota=" "" \ >> + "quota" "" \ >> + "noquota" "" \ >> + "alloc_mode=reuse" "" \ >> + "alloc_mode=default" "" \ >> + "fsync_mode=posix" "" \ >> + "fsync_mode=strict" "" \ >> + "fsync_mode=nobarrier" "" \ >> + "test_dummy_encryption" "" \ >> + "test_dummy_encryption=v1" "" \ >> + "test_dummy_encryption=v2" "" \ >> + "checkpoint=enable" "" \ >> + "checkpoint=disable" "" \ >> + "checkpoint=disable:32768" "" \ >> + "checkpoint=disable:50%" "" \ >> + "checkpoint_merge" "" \ >> + "nocheckpoint_merge" "" \ >> + "compress_algorithm=lzo" "" \ >> + "compress_algorithm=lzo" "extra,compression" \ >> + "compress_algorithm=lz4" "extra,compression" \ >> + "compress_algorithm=zstd" "extra,compression" \ >> + "compress_algorithm=lzo-rle" "extra,compression" \ >> + "compress_algorithm=lz4:3" "extra,compression" \ >> + "compress_algorithm=zstd:1" "extra,compression" \ >> + "compress_log_size=8" "extra,compression" \ >> + "compress_extension=so" "extra,compression" \ >> + "nocompress_extension=so" "extra,compression" \ >> + "nocompress_extension=*" "extra,compression" \ >> + "compress_extension=so,nocompress_extension=so" \ >> + "extra,compression" \ >> + "compress_chksum" "extra,compression" \ >> + "compress_mode=fs" "extra,compression" \ >> + "compress_mode=user" "extra,compression" \ >> + "compress_cache" "extra,compression" \ >> + "inlinecrypt" "" \ >> + "atgc" "" \ >> + "discard_unit=block" "" \ >> + "discard_unit=segment" "" \ >> + "discard_unit=section" "" \ >> + "discard_unit=block" "blkzone" \ >> + "discard_unit=segment" "blkzone" \ >> + "discard_unit=section" "blkzone" \ >> + "memory=normal" "" \ >> + "memory=low" "" \ >> + "age_extent_cache" "" \ >> + "errors=panic" "" \ >> + "errors=continue" "" \ >> + "errors=remount-ro" "" \ >> + "nat_bits" "" \ >> + "atgc,mode=lfs" "" \ >> + "ro,flush_merge" "" \ >> + "rw" "ro" \ >> + "norecovery,ro" "" \ >> +) >> + >> +for ((i=0;i<${#options[@]};i=i+2)) >> +do >> + echo "Option#$i: ${options[$i]} : ${options[$((i+1))]}" >> + if [ "${options[$((i+1))]}" == "blkzone" ]; then >> + _test_mkfs "-m" >> $seqres.full >> + _test_mount "-o ${options[$i]}" >> $seqres.full 2>&1 >> + echo $? >> + _test_unmount >> $seqres.full 2>&1 >> + else >> + _scratch_mkfs "-O ${options[$((i+1))]}" >> $seqres.full >> + _try_scratch_mount "-o ${options[$i]}" >> $seqres.full 2>&1 >> + echo $? >> + _scratch_unmount >> $seqres.full 2>&1 >> + fi >> +done >> + >> +status=0 >> +exit >> diff --git a/tests/f2fs/015.out b/tests/f2fs/015.out >> new file mode 100644 >> index 00000000..d7f4e62a >> --- /dev/null >> +++ b/tests/f2fs/015.out >> @@ -0,0 +1,225 @@ >> +QA output created by 015 >> +Option#0: background_gc=on : >> +0 >> +Option#2: background_gc=off : >> +0 >> +Option#4: background_gc=sync : >> +0 >> +Option#6: background_gc=on : blkzone >> +0 >> +Option#8: background_gc=off : blkzone >> +32 >> +Option#10: background_gc=sync : blkzone >> +0 >> +Option#12: disable_roll_forward : >> +0 >> +Option#14: norecovery : >> +32 >> +Option#16: discard : >> +0 >> +Option#18: nodiscard : >> +0 >> +Option#20: no_heap : >> +0 >> +Option#22: heap : >> +0 >> +Option#24: user_xattr : >> +0 >> +Option#26: nouser_xattr : >> +0 >> +Option#28: acl : >> +0 >> +Option#30: noacl : >> +0 >> +Option#32: active_logs=2 : >> +0 >> +Option#34: active_logs=4 : >> +0 >> +Option#36: active_logs=6 : >> +0 >> +Option#38: disable_ext_identify : >> +0 >> +Option#40: inline_xattr : >> +0 >> +Option#42: noinline_xattr : >> +0 >> +Option#44: inline_xattr_size=400 : extra,flexible_inline_xattr >> +32 >> +Option#46: inline_xattr_size=400 : >> +32 >> +Option#48: inline_data : >> +0 >> +Option#50: noinline_dentry : >> +0 >> +Option#52: inline_dentry : >> +0 >> +Option#54: noinline_dentry : >> +0 >> +Option#56: flush_merge : >> +0 >> +Option#58: noflush_merge : >> +0 >> +Option#60: barrier : >> +0 >> +Option#62: nobarrier : >> +0 >> +Option#64: fastboot : >> +0 >> +Option#66: extent_cache : >> +0 >> +Option#68: noextent_cache : >> +0 >> +Option#70: data_flush : >> +0 >> +Option#72: reserve_root=32768 : >> +0 >> +Option#74: resuid=1000 : >> +0 >> +Option#76: resgid=1000 : >> +0 >> +Option#78: fault_injection=100 : >> +0 >> +Option#80: fault_type=4095 : >> +0 >> +Option#82: mode=adaptive : >> +0 >> +Option#84: mode=lfs : >> +0 >> +Option#86: mode=fragment:segment : >> +0 >> +Option#88: mode=fragment:block : >> +0 >> +Option#90: mode=adaptive : blkzone >> +32 >> +Option#92: mode=lfs : blkzone >> +0 >> +Option#94: mode=fragment:segment : blkzone >> +32 >> +Option#96: mode=fragment:block : blkzone >> +32 >> +Option#98: usrquota : >> +0 >> +Option#100: grpquota : >> +0 >> +Option#102: prjquota : >> +32 >> +Option#104: usrjquota=ausrquota : >> +32 >> +Option#106: grpjquota=agrpquota : >> +32 >> +Option#108: prjjquota=aprjquota : >> +32 >> +Option#110: jqfmt=vfsold : >> +0 >> +Option#112: jqfmt=vfsv0 : >> +0 >> +Option#114: jqfmt=vfsv1 : >> +0 >> +Option#116: usrjquota= : >> +0 >> +Option#118: grpjquota= : >> +0 >> +Option#120: prjjquota= : >> +0 >> +Option#122: quota : >> +0 >> +Option#124: noquota : >> +0 >> +Option#126: alloc_mode=reuse : >> +0 >> +Option#128: alloc_mode=default : >> +0 >> +Option#130: fsync_mode=posix : >> +0 >> +Option#132: fsync_mode=strict : >> +0 >> +Option#134: fsync_mode=nobarrier : >> +0 >> +Option#136: test_dummy_encryption : >> +32 >> +Option#138: test_dummy_encryption=v1 : >> +32 >> +Option#140: test_dummy_encryption=v2 : >> +32 >> +Option#142: checkpoint=enable : >> +0 >> +Option#144: checkpoint=disable : >> +0 >> +Option#146: checkpoint=disable:32768 : >> +0 >> +Option#148: checkpoint=disable:50% : >> +0 >> +Option#150: checkpoint_merge : >> +0 >> +Option#152: nocheckpoint_merge : >> +0 >> +Option#154: compress_algorithm=lzo : >> +0 >> +Option#156: compress_algorithm=lzo : extra,compression >> +0 >> +Option#158: compress_algorithm=lz4 : extra,compression >> +0 >> +Option#160: compress_algorithm=zstd : extra,compression >> +0 >> +Option#162: compress_algorithm=lzo-rle : extra,compression >> +0 >> +Option#164: compress_algorithm=lz4:3 : extra,compression >> +0 >> +Option#166: compress_algorithm=zstd:1 : extra,compression >> +0 >> +Option#168: compress_log_size=8 : extra,compression >> +0 >> +Option#170: compress_extension=so : extra,compression >> +0 >> +Option#172: nocompress_extension=so : extra,compression >> +0 >> +Option#174: nocompress_extension=* : extra,compression >> +0 >> +Option#176: compress_extension=so,nocompress_extension=so : extra,compression >> +0 >> +Option#178: compress_chksum : extra,compression >> +0 >> +Option#180: compress_mode=fs : extra,compression >> +0 >> +Option#182: compress_mode=user : extra,compression >> +0 >> +Option#184: compress_cache : extra,compression >> +0 >> +Option#186: inlinecrypt : >> +0 >> +Option#188: atgc : >> +0 >> +Option#190: discard_unit=block : >> +0 >> +Option#192: discard_unit=segment : >> +0 >> +Option#194: discard_unit=section : >> +0 >> +Option#196: discard_unit=block : blkzone >> +0 >> +Option#198: discard_unit=segment : blkzone >> +0 >> +Option#200: discard_unit=section : blkzone >> +0 >> +Option#202: memory=normal : >> +0 >> +Option#204: memory=low : >> +0 >> +Option#206: age_extent_cache : >> +0 >> +Option#208: errors=panic : >> +0 >> +Option#210: errors=continue : >> +0 >> +Option#212: errors=remount-ro : >> +0 >> +Option#214: nat_bits : >> +0 >> +Option#216: atgc,mode=lfs : >> +32 >> +Option#218: ro,flush_merge : >> +32 >> +Option#220: rw : ro >> +0 >> +Option#222: norecovery,ro : >> +0 >> -- >> 2.49.0 >> > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [f2fs-dev] [PATCH v2] f2fs/015: test mount options 2025-07-07 9:05 ` Chao Yu via Linux-f2fs-devel @ 2025-07-08 14:29 ` Zorro Lang via Linux-f2fs-devel 2025-07-09 6:18 ` Chao Yu via Linux-f2fs-devel 0 siblings, 1 reply; 5+ messages in thread From: Zorro Lang via Linux-f2fs-devel @ 2025-07-08 14:29 UTC (permalink / raw) To: Chao Yu; +Cc: jaegeuk, Zorro Lang, fstests, linux-f2fs-devel On Mon, Jul 07, 2025 at 05:05:31PM +0800, Chao Yu wrote: > On 7/5/25 02:14, Zorro Lang wrote: > > On Fri, Jul 04, 2025 at 07:48:18PM +0800, Chao Yu wrote: > >> As f2fs changes to use new mount APIs, let's add a new testcase > >> to check mount result for all f2fs supported mount options and > >> their combinations, in order to detect any inconsistency during > >> mount. > >> > >> Cc: Jaegeuk Kim <jaegeuk@kernel.org> > >> Signed-off-by: Chao Yu <chao@kernel.org> > >> --- > >> v2: > >> - allow to check mount options w/ zoned device > >> common/rc | 3 + > >> tests/f2fs/015 | 159 ++++++++++++++++++++++++++++++++ > >> tests/f2fs/015.out | 225 +++++++++++++++++++++++++++++++++++++++++++++ > >> 3 files changed, 387 insertions(+) > >> create mode 100755 tests/f2fs/015 > >> create mode 100644 tests/f2fs/015.out > >> > >> diff --git a/common/rc b/common/rc > >> index f71cc8f0..94fdce7e 100644 > >> --- a/common/rc > >> +++ b/common/rc > >> @@ -844,6 +844,9 @@ _test_mkfs() > >> ext2|ext3|ext4) > >> $MKFS_PROG -t $FSTYP -- -F $MKFS_OPTIONS $* $TEST_DEV > >> ;; > >> + f2fs) > >> + $MKFS_PROG -t $FSTYP -- -f $MKFS_OPTIONS $* $TEST_DEV > >> + ;; > >> xfs) > >> _test_options mkfs > >> $MKFS_PROG -t $FSTYP -- -f $TEST_OPTIONS $MKFS_OPTIONS $* $TEST_DEV > >> diff --git a/tests/f2fs/015 b/tests/f2fs/015 > >> new file mode 100755 > >> index 00000000..746e79de > >> --- /dev/null > >> +++ b/tests/f2fs/015 > >> @@ -0,0 +1,159 @@ > >> +#! /bin/bash > >> +# SPDX-License-Identifier: GPL-2.0 > >> +# Copyright (c) 2025 Chao Yu. All Rights Reserved. > >> +# > >> +# FS QA Test No. f2fs/015 > >> +# > >> +# This testcase tries to check stability of mount result > >> +# w/ all f2fs supported mount option and their combination. > >> +# > >> +. ./common/preamble > >> +_begin_fstest auto quick > >> +_require_kernel_config CONFIG_F2FS_FS_XATTR > >> +_require_kernel_config CONFIG_F2FS_FS_POSIX_ACL > >> +_require_kernel_config CONFIG_F2FS_FAULT_INJECTION > >> +_require_kernel_config CONFIG_F2FS_FS_COMPRESSION > >> +_require_kernel_config CONFIG_F2FS_FS_LZO > >> +_require_kernel_config CONFIG_F2FS_FS_LZORLE > >> +_require_kernel_config CONFIG_F2FS_FS_LZ4 > >> +_require_kernel_config CONFIG_F2FS_FS_LZ4HC > >> +_require_kernel_config CONFIG_F2FS_FS_ZSTD > >> + > >> +_require_zoned_device "$TEST_DEV" > > > > This requirement limit this test case only on zoned device... > > Maybe you can slip this test case to 2~3 cases, let some common > > mount options can be tested at first, some unimportant mount > > options can be tested in another case, then zoned device related > > mount options be tested in a seperated case ? > > Good idea, do you want to uplift common mount option testcase to > generic/ directory? or is it fine to leave it in f2fs/ now? If you'd like to write a test case for mount(8) "COMMAND-LINE OPTIONS" and "FILESYSTEM-INDEPENDENT MOUNT OPTIONS", that's good too :) For this case I think it's fine to leave it in f2fs. Since new-mount APIs were brought in, more and more filesystems have their own xfs mount options test cases as what you are doing for f2fs now. These cases are $FSTYP specific test mostly. Thanks, Zorro > > Thanks, > > > > > Thanks, > > Zorro > > > >> +_test_unmount >> $seqres.full 2>&1 > >> + > >> +options=( > >> +# mount_option mkfs_option > >> + "background_gc=on" "" \ > >> + "background_gc=off" "" \ > >> + "background_gc=sync" "" \ > >> + "background_gc=on" "blkzone" \ > >> + "background_gc=off" "blkzone" \ > >> + "background_gc=sync" "blkzone" \ > >> + "disable_roll_forward" "" \ > >> + "norecovery" "" \ > >> + "discard" "" \ > >> + "nodiscard" "" \ > >> + "no_heap" "" \ > >> + "heap" "" \ > >> + "user_xattr" "" \ > >> + "nouser_xattr" "" \ > >> + "acl" "" \ > >> + "noacl" "" \ > >> + "active_logs=2" "" \ > >> + "active_logs=4" "" \ > >> + "active_logs=6" "" \ > >> + "disable_ext_identify" "" \ > >> + "inline_xattr" "" \ > >> + "noinline_xattr" "" \ > >> + "inline_xattr_size=400" "extra,flexible_inline_xattr"\ > >> + "inline_xattr_size=400" "" \ > >> + "inline_data" "" \ > >> + "noinline_dentry" "" \ > >> + "inline_dentry" "" \ > >> + "noinline_dentry" "" \ > >> + "flush_merge" "" \ > >> + "noflush_merge" "" \ > >> + "barrier" "" \ > >> + "nobarrier" "" \ > >> + "fastboot" "" \ > >> + "extent_cache" "" \ > >> + "noextent_cache" "" \ > >> + "data_flush" "" \ > >> + "reserve_root=32768" "" \ > >> + "resuid=1000" "" \ > >> + "resgid=1000" "" \ > >> + "fault_injection=100" "" \ > >> + "fault_type=4095" "" \ > >> + "mode=adaptive" "" \ > >> + "mode=lfs" "" \ > >> + "mode=fragment:segment" "" \ > >> + "mode=fragment:block" "" \ > >> + "mode=adaptive" "blkzone" \ > >> + "mode=lfs" "blkzone" \ > >> + "mode=fragment:segment" "blkzone" \ > >> + "mode=fragment:block" "blkzone" \ > >> + "usrquota" "" \ > >> + "grpquota" "" \ > >> + "prjquota" "" \ > >> + "usrjquota=ausrquota" "" \ > >> + "grpjquota=agrpquota" "" \ > >> + "prjjquota=aprjquota" "" \ > >> + "jqfmt=vfsold" "" \ > >> + "jqfmt=vfsv0" "" \ > >> + "jqfmt=vfsv1" "" \ > >> + "usrjquota=" "" \ > >> + "grpjquota=" "" \ > >> + "prjjquota=" "" \ > >> + "quota" "" \ > >> + "noquota" "" \ > >> + "alloc_mode=reuse" "" \ > >> + "alloc_mode=default" "" \ > >> + "fsync_mode=posix" "" \ > >> + "fsync_mode=strict" "" \ > >> + "fsync_mode=nobarrier" "" \ > >> + "test_dummy_encryption" "" \ > >> + "test_dummy_encryption=v1" "" \ > >> + "test_dummy_encryption=v2" "" \ > >> + "checkpoint=enable" "" \ > >> + "checkpoint=disable" "" \ > >> + "checkpoint=disable:32768" "" \ > >> + "checkpoint=disable:50%" "" \ > >> + "checkpoint_merge" "" \ > >> + "nocheckpoint_merge" "" \ > >> + "compress_algorithm=lzo" "" \ > >> + "compress_algorithm=lzo" "extra,compression" \ > >> + "compress_algorithm=lz4" "extra,compression" \ > >> + "compress_algorithm=zstd" "extra,compression" \ > >> + "compress_algorithm=lzo-rle" "extra,compression" \ > >> + "compress_algorithm=lz4:3" "extra,compression" \ > >> + "compress_algorithm=zstd:1" "extra,compression" \ > >> + "compress_log_size=8" "extra,compression" \ > >> + "compress_extension=so" "extra,compression" \ > >> + "nocompress_extension=so" "extra,compression" \ > >> + "nocompress_extension=*" "extra,compression" \ > >> + "compress_extension=so,nocompress_extension=so" \ > >> + "extra,compression" \ > >> + "compress_chksum" "extra,compression" \ > >> + "compress_mode=fs" "extra,compression" \ > >> + "compress_mode=user" "extra,compression" \ > >> + "compress_cache" "extra,compression" \ > >> + "inlinecrypt" "" \ > >> + "atgc" "" \ > >> + "discard_unit=block" "" \ > >> + "discard_unit=segment" "" \ > >> + "discard_unit=section" "" \ > >> + "discard_unit=block" "blkzone" \ > >> + "discard_unit=segment" "blkzone" \ > >> + "discard_unit=section" "blkzone" \ > >> + "memory=normal" "" \ > >> + "memory=low" "" \ > >> + "age_extent_cache" "" \ > >> + "errors=panic" "" \ > >> + "errors=continue" "" \ > >> + "errors=remount-ro" "" \ > >> + "nat_bits" "" \ > >> + "atgc,mode=lfs" "" \ > >> + "ro,flush_merge" "" \ > >> + "rw" "ro" \ > >> + "norecovery,ro" "" \ > >> +) > >> + > >> +for ((i=0;i<${#options[@]};i=i+2)) > >> +do > >> + echo "Option#$i: ${options[$i]} : ${options[$((i+1))]}" > >> + if [ "${options[$((i+1))]}" == "blkzone" ]; then > >> + _test_mkfs "-m" >> $seqres.full > >> + _test_mount "-o ${options[$i]}" >> $seqres.full 2>&1 > >> + echo $? > >> + _test_unmount >> $seqres.full 2>&1 > >> + else > >> + _scratch_mkfs "-O ${options[$((i+1))]}" >> $seqres.full > >> + _try_scratch_mount "-o ${options[$i]}" >> $seqres.full 2>&1 > >> + echo $? > >> + _scratch_unmount >> $seqres.full 2>&1 > >> + fi > >> +done > >> + > >> +status=0 > >> +exit > >> diff --git a/tests/f2fs/015.out b/tests/f2fs/015.out > >> new file mode 100644 > >> index 00000000..d7f4e62a > >> --- /dev/null > >> +++ b/tests/f2fs/015.out > >> @@ -0,0 +1,225 @@ > >> +QA output created by 015 > >> +Option#0: background_gc=on : > >> +0 > >> +Option#2: background_gc=off : > >> +0 > >> +Option#4: background_gc=sync : > >> +0 > >> +Option#6: background_gc=on : blkzone > >> +0 > >> +Option#8: background_gc=off : blkzone > >> +32 > >> +Option#10: background_gc=sync : blkzone > >> +0 > >> +Option#12: disable_roll_forward : > >> +0 > >> +Option#14: norecovery : > >> +32 > >> +Option#16: discard : > >> +0 > >> +Option#18: nodiscard : > >> +0 > >> +Option#20: no_heap : > >> +0 > >> +Option#22: heap : > >> +0 > >> +Option#24: user_xattr : > >> +0 > >> +Option#26: nouser_xattr : > >> +0 > >> +Option#28: acl : > >> +0 > >> +Option#30: noacl : > >> +0 > >> +Option#32: active_logs=2 : > >> +0 > >> +Option#34: active_logs=4 : > >> +0 > >> +Option#36: active_logs=6 : > >> +0 > >> +Option#38: disable_ext_identify : > >> +0 > >> +Option#40: inline_xattr : > >> +0 > >> +Option#42: noinline_xattr : > >> +0 > >> +Option#44: inline_xattr_size=400 : extra,flexible_inline_xattr > >> +32 > >> +Option#46: inline_xattr_size=400 : > >> +32 > >> +Option#48: inline_data : > >> +0 > >> +Option#50: noinline_dentry : > >> +0 > >> +Option#52: inline_dentry : > >> +0 > >> +Option#54: noinline_dentry : > >> +0 > >> +Option#56: flush_merge : > >> +0 > >> +Option#58: noflush_merge : > >> +0 > >> +Option#60: barrier : > >> +0 > >> +Option#62: nobarrier : > >> +0 > >> +Option#64: fastboot : > >> +0 > >> +Option#66: extent_cache : > >> +0 > >> +Option#68: noextent_cache : > >> +0 > >> +Option#70: data_flush : > >> +0 > >> +Option#72: reserve_root=32768 : > >> +0 > >> +Option#74: resuid=1000 : > >> +0 > >> +Option#76: resgid=1000 : > >> +0 > >> +Option#78: fault_injection=100 : > >> +0 > >> +Option#80: fault_type=4095 : > >> +0 > >> +Option#82: mode=adaptive : > >> +0 > >> +Option#84: mode=lfs : > >> +0 > >> +Option#86: mode=fragment:segment : > >> +0 > >> +Option#88: mode=fragment:block : > >> +0 > >> +Option#90: mode=adaptive : blkzone > >> +32 > >> +Option#92: mode=lfs : blkzone > >> +0 > >> +Option#94: mode=fragment:segment : blkzone > >> +32 > >> +Option#96: mode=fragment:block : blkzone > >> +32 > >> +Option#98: usrquota : > >> +0 > >> +Option#100: grpquota : > >> +0 > >> +Option#102: prjquota : > >> +32 > >> +Option#104: usrjquota=ausrquota : > >> +32 > >> +Option#106: grpjquota=agrpquota : > >> +32 > >> +Option#108: prjjquota=aprjquota : > >> +32 > >> +Option#110: jqfmt=vfsold : > >> +0 > >> +Option#112: jqfmt=vfsv0 : > >> +0 > >> +Option#114: jqfmt=vfsv1 : > >> +0 > >> +Option#116: usrjquota= : > >> +0 > >> +Option#118: grpjquota= : > >> +0 > >> +Option#120: prjjquota= : > >> +0 > >> +Option#122: quota : > >> +0 > >> +Option#124: noquota : > >> +0 > >> +Option#126: alloc_mode=reuse : > >> +0 > >> +Option#128: alloc_mode=default : > >> +0 > >> +Option#130: fsync_mode=posix : > >> +0 > >> +Option#132: fsync_mode=strict : > >> +0 > >> +Option#134: fsync_mode=nobarrier : > >> +0 > >> +Option#136: test_dummy_encryption : > >> +32 > >> +Option#138: test_dummy_encryption=v1 : > >> +32 > >> +Option#140: test_dummy_encryption=v2 : > >> +32 > >> +Option#142: checkpoint=enable : > >> +0 > >> +Option#144: checkpoint=disable : > >> +0 > >> +Option#146: checkpoint=disable:32768 : > >> +0 > >> +Option#148: checkpoint=disable:50% : > >> +0 > >> +Option#150: checkpoint_merge : > >> +0 > >> +Option#152: nocheckpoint_merge : > >> +0 > >> +Option#154: compress_algorithm=lzo : > >> +0 > >> +Option#156: compress_algorithm=lzo : extra,compression > >> +0 > >> +Option#158: compress_algorithm=lz4 : extra,compression > >> +0 > >> +Option#160: compress_algorithm=zstd : extra,compression > >> +0 > >> +Option#162: compress_algorithm=lzo-rle : extra,compression > >> +0 > >> +Option#164: compress_algorithm=lz4:3 : extra,compression > >> +0 > >> +Option#166: compress_algorithm=zstd:1 : extra,compression > >> +0 > >> +Option#168: compress_log_size=8 : extra,compression > >> +0 > >> +Option#170: compress_extension=so : extra,compression > >> +0 > >> +Option#172: nocompress_extension=so : extra,compression > >> +0 > >> +Option#174: nocompress_extension=* : extra,compression > >> +0 > >> +Option#176: compress_extension=so,nocompress_extension=so : extra,compression > >> +0 > >> +Option#178: compress_chksum : extra,compression > >> +0 > >> +Option#180: compress_mode=fs : extra,compression > >> +0 > >> +Option#182: compress_mode=user : extra,compression > >> +0 > >> +Option#184: compress_cache : extra,compression > >> +0 > >> +Option#186: inlinecrypt : > >> +0 > >> +Option#188: atgc : > >> +0 > >> +Option#190: discard_unit=block : > >> +0 > >> +Option#192: discard_unit=segment : > >> +0 > >> +Option#194: discard_unit=section : > >> +0 > >> +Option#196: discard_unit=block : blkzone > >> +0 > >> +Option#198: discard_unit=segment : blkzone > >> +0 > >> +Option#200: discard_unit=section : blkzone > >> +0 > >> +Option#202: memory=normal : > >> +0 > >> +Option#204: memory=low : > >> +0 > >> +Option#206: age_extent_cache : > >> +0 > >> +Option#208: errors=panic : > >> +0 > >> +Option#210: errors=continue : > >> +0 > >> +Option#212: errors=remount-ro : > >> +0 > >> +Option#214: nat_bits : > >> +0 > >> +Option#216: atgc,mode=lfs : > >> +32 > >> +Option#218: ro,flush_merge : > >> +32 > >> +Option#220: rw : ro > >> +0 > >> +Option#222: norecovery,ro : > >> +0 > >> -- > >> 2.49.0 > >> > > > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [f2fs-dev] [PATCH v2] f2fs/015: test mount options 2025-07-08 14:29 ` Zorro Lang via Linux-f2fs-devel @ 2025-07-09 6:18 ` Chao Yu via Linux-f2fs-devel 0 siblings, 0 replies; 5+ messages in thread From: Chao Yu via Linux-f2fs-devel @ 2025-07-09 6:18 UTC (permalink / raw) To: Zorro Lang; +Cc: jaegeuk, Zorro Lang, fstests, linux-f2fs-devel On 7/8/25 22:29, Zorro Lang wrote: > On Mon, Jul 07, 2025 at 05:05:31PM +0800, Chao Yu wrote: >> On 7/5/25 02:14, Zorro Lang wrote: >>> On Fri, Jul 04, 2025 at 07:48:18PM +0800, Chao Yu wrote: >>>> As f2fs changes to use new mount APIs, let's add a new testcase >>>> to check mount result for all f2fs supported mount options and >>>> their combinations, in order to detect any inconsistency during >>>> mount. >>>> >>>> Cc: Jaegeuk Kim <jaegeuk@kernel.org> >>>> Signed-off-by: Chao Yu <chao@kernel.org> >>>> --- >>>> v2: >>>> - allow to check mount options w/ zoned device >>>> common/rc | 3 + >>>> tests/f2fs/015 | 159 ++++++++++++++++++++++++++++++++ >>>> tests/f2fs/015.out | 225 +++++++++++++++++++++++++++++++++++++++++++++ >>>> 3 files changed, 387 insertions(+) >>>> create mode 100755 tests/f2fs/015 >>>> create mode 100644 tests/f2fs/015.out >>>> >>>> diff --git a/common/rc b/common/rc >>>> index f71cc8f0..94fdce7e 100644 >>>> --- a/common/rc >>>> +++ b/common/rc >>>> @@ -844,6 +844,9 @@ _test_mkfs() >>>> ext2|ext3|ext4) >>>> $MKFS_PROG -t $FSTYP -- -F $MKFS_OPTIONS $* $TEST_DEV >>>> ;; >>>> + f2fs) >>>> + $MKFS_PROG -t $FSTYP -- -f $MKFS_OPTIONS $* $TEST_DEV >>>> + ;; >>>> xfs) >>>> _test_options mkfs >>>> $MKFS_PROG -t $FSTYP -- -f $TEST_OPTIONS $MKFS_OPTIONS $* $TEST_DEV >>>> diff --git a/tests/f2fs/015 b/tests/f2fs/015 >>>> new file mode 100755 >>>> index 00000000..746e79de >>>> --- /dev/null >>>> +++ b/tests/f2fs/015 >>>> @@ -0,0 +1,159 @@ >>>> +#! /bin/bash >>>> +# SPDX-License-Identifier: GPL-2.0 >>>> +# Copyright (c) 2025 Chao Yu. All Rights Reserved. >>>> +# >>>> +# FS QA Test No. f2fs/015 >>>> +# >>>> +# This testcase tries to check stability of mount result >>>> +# w/ all f2fs supported mount option and their combination. >>>> +# >>>> +. ./common/preamble >>>> +_begin_fstest auto quick >>>> +_require_kernel_config CONFIG_F2FS_FS_XATTR >>>> +_require_kernel_config CONFIG_F2FS_FS_POSIX_ACL >>>> +_require_kernel_config CONFIG_F2FS_FAULT_INJECTION >>>> +_require_kernel_config CONFIG_F2FS_FS_COMPRESSION >>>> +_require_kernel_config CONFIG_F2FS_FS_LZO >>>> +_require_kernel_config CONFIG_F2FS_FS_LZORLE >>>> +_require_kernel_config CONFIG_F2FS_FS_LZ4 >>>> +_require_kernel_config CONFIG_F2FS_FS_LZ4HC >>>> +_require_kernel_config CONFIG_F2FS_FS_ZSTD >>>> + >>>> +_require_zoned_device "$TEST_DEV" >>> >>> This requirement limit this test case only on zoned device... >>> Maybe you can slip this test case to 2~3 cases, let some common >>> mount options can be tested at first, some unimportant mount >>> options can be tested in another case, then zoned device related >>> mount options be tested in a seperated case ? >> >> Good idea, do you want to uplift common mount option testcase to >> generic/ directory? or is it fine to leave it in f2fs/ now? > > If you'd like to write a test case for mount(8) "COMMAND-LINE OPTIONS" > and "FILESYSTEM-INDEPENDENT MOUNT OPTIONS", that's good too :) I will take a look once I got free slot. :) > > For this case I think it's fine to leave it in f2fs. Since new-mount > APIs were brought in, more and more filesystems have their own xfs mount > options test cases as what you are doing for f2fs now. These cases are > $FSTYP specific test mostly. Agreed, let me make it as f2fs testcase now. Thanks, > > Thanks, > Zorro > >> >> Thanks, >> >>> >>> Thanks, >>> Zorro >>> >>>> +_test_unmount >> $seqres.full 2>&1 >>>> + >>>> +options=( >>>> +# mount_option mkfs_option >>>> + "background_gc=on" "" \ >>>> + "background_gc=off" "" \ >>>> + "background_gc=sync" "" \ >>>> + "background_gc=on" "blkzone" \ >>>> + "background_gc=off" "blkzone" \ >>>> + "background_gc=sync" "blkzone" \ >>>> + "disable_roll_forward" "" \ >>>> + "norecovery" "" \ >>>> + "discard" "" \ >>>> + "nodiscard" "" \ >>>> + "no_heap" "" \ >>>> + "heap" "" \ >>>> + "user_xattr" "" \ >>>> + "nouser_xattr" "" \ >>>> + "acl" "" \ >>>> + "noacl" "" \ >>>> + "active_logs=2" "" \ >>>> + "active_logs=4" "" \ >>>> + "active_logs=6" "" \ >>>> + "disable_ext_identify" "" \ >>>> + "inline_xattr" "" \ >>>> + "noinline_xattr" "" \ >>>> + "inline_xattr_size=400" "extra,flexible_inline_xattr"\ >>>> + "inline_xattr_size=400" "" \ >>>> + "inline_data" "" \ >>>> + "noinline_dentry" "" \ >>>> + "inline_dentry" "" \ >>>> + "noinline_dentry" "" \ >>>> + "flush_merge" "" \ >>>> + "noflush_merge" "" \ >>>> + "barrier" "" \ >>>> + "nobarrier" "" \ >>>> + "fastboot" "" \ >>>> + "extent_cache" "" \ >>>> + "noextent_cache" "" \ >>>> + "data_flush" "" \ >>>> + "reserve_root=32768" "" \ >>>> + "resuid=1000" "" \ >>>> + "resgid=1000" "" \ >>>> + "fault_injection=100" "" \ >>>> + "fault_type=4095" "" \ >>>> + "mode=adaptive" "" \ >>>> + "mode=lfs" "" \ >>>> + "mode=fragment:segment" "" \ >>>> + "mode=fragment:block" "" \ >>>> + "mode=adaptive" "blkzone" \ >>>> + "mode=lfs" "blkzone" \ >>>> + "mode=fragment:segment" "blkzone" \ >>>> + "mode=fragment:block" "blkzone" \ >>>> + "usrquota" "" \ >>>> + "grpquota" "" \ >>>> + "prjquota" "" \ >>>> + "usrjquota=ausrquota" "" \ >>>> + "grpjquota=agrpquota" "" \ >>>> + "prjjquota=aprjquota" "" \ >>>> + "jqfmt=vfsold" "" \ >>>> + "jqfmt=vfsv0" "" \ >>>> + "jqfmt=vfsv1" "" \ >>>> + "usrjquota=" "" \ >>>> + "grpjquota=" "" \ >>>> + "prjjquota=" "" \ >>>> + "quota" "" \ >>>> + "noquota" "" \ >>>> + "alloc_mode=reuse" "" \ >>>> + "alloc_mode=default" "" \ >>>> + "fsync_mode=posix" "" \ >>>> + "fsync_mode=strict" "" \ >>>> + "fsync_mode=nobarrier" "" \ >>>> + "test_dummy_encryption" "" \ >>>> + "test_dummy_encryption=v1" "" \ >>>> + "test_dummy_encryption=v2" "" \ >>>> + "checkpoint=enable" "" \ >>>> + "checkpoint=disable" "" \ >>>> + "checkpoint=disable:32768" "" \ >>>> + "checkpoint=disable:50%" "" \ >>>> + "checkpoint_merge" "" \ >>>> + "nocheckpoint_merge" "" \ >>>> + "compress_algorithm=lzo" "" \ >>>> + "compress_algorithm=lzo" "extra,compression" \ >>>> + "compress_algorithm=lz4" "extra,compression" \ >>>> + "compress_algorithm=zstd" "extra,compression" \ >>>> + "compress_algorithm=lzo-rle" "extra,compression" \ >>>> + "compress_algorithm=lz4:3" "extra,compression" \ >>>> + "compress_algorithm=zstd:1" "extra,compression" \ >>>> + "compress_log_size=8" "extra,compression" \ >>>> + "compress_extension=so" "extra,compression" \ >>>> + "nocompress_extension=so" "extra,compression" \ >>>> + "nocompress_extension=*" "extra,compression" \ >>>> + "compress_extension=so,nocompress_extension=so" \ >>>> + "extra,compression" \ >>>> + "compress_chksum" "extra,compression" \ >>>> + "compress_mode=fs" "extra,compression" \ >>>> + "compress_mode=user" "extra,compression" \ >>>> + "compress_cache" "extra,compression" \ >>>> + "inlinecrypt" "" \ >>>> + "atgc" "" \ >>>> + "discard_unit=block" "" \ >>>> + "discard_unit=segment" "" \ >>>> + "discard_unit=section" "" \ >>>> + "discard_unit=block" "blkzone" \ >>>> + "discard_unit=segment" "blkzone" \ >>>> + "discard_unit=section" "blkzone" \ >>>> + "memory=normal" "" \ >>>> + "memory=low" "" \ >>>> + "age_extent_cache" "" \ >>>> + "errors=panic" "" \ >>>> + "errors=continue" "" \ >>>> + "errors=remount-ro" "" \ >>>> + "nat_bits" "" \ >>>> + "atgc,mode=lfs" "" \ >>>> + "ro,flush_merge" "" \ >>>> + "rw" "ro" \ >>>> + "norecovery,ro" "" \ >>>> +) >>>> + >>>> +for ((i=0;i<${#options[@]};i=i+2)) >>>> +do >>>> + echo "Option#$i: ${options[$i]} : ${options[$((i+1))]}" >>>> + if [ "${options[$((i+1))]}" == "blkzone" ]; then >>>> + _test_mkfs "-m" >> $seqres.full >>>> + _test_mount "-o ${options[$i]}" >> $seqres.full 2>&1 >>>> + echo $? >>>> + _test_unmount >> $seqres.full 2>&1 >>>> + else >>>> + _scratch_mkfs "-O ${options[$((i+1))]}" >> $seqres.full >>>> + _try_scratch_mount "-o ${options[$i]}" >> $seqres.full 2>&1 >>>> + echo $? >>>> + _scratch_unmount >> $seqres.full 2>&1 >>>> + fi >>>> +done >>>> + >>>> +status=0 >>>> +exit >>>> diff --git a/tests/f2fs/015.out b/tests/f2fs/015.out >>>> new file mode 100644 >>>> index 00000000..d7f4e62a >>>> --- /dev/null >>>> +++ b/tests/f2fs/015.out >>>> @@ -0,0 +1,225 @@ >>>> +QA output created by 015 >>>> +Option#0: background_gc=on : >>>> +0 >>>> +Option#2: background_gc=off : >>>> +0 >>>> +Option#4: background_gc=sync : >>>> +0 >>>> +Option#6: background_gc=on : blkzone >>>> +0 >>>> +Option#8: background_gc=off : blkzone >>>> +32 >>>> +Option#10: background_gc=sync : blkzone >>>> +0 >>>> +Option#12: disable_roll_forward : >>>> +0 >>>> +Option#14: norecovery : >>>> +32 >>>> +Option#16: discard : >>>> +0 >>>> +Option#18: nodiscard : >>>> +0 >>>> +Option#20: no_heap : >>>> +0 >>>> +Option#22: heap : >>>> +0 >>>> +Option#24: user_xattr : >>>> +0 >>>> +Option#26: nouser_xattr : >>>> +0 >>>> +Option#28: acl : >>>> +0 >>>> +Option#30: noacl : >>>> +0 >>>> +Option#32: active_logs=2 : >>>> +0 >>>> +Option#34: active_logs=4 : >>>> +0 >>>> +Option#36: active_logs=6 : >>>> +0 >>>> +Option#38: disable_ext_identify : >>>> +0 >>>> +Option#40: inline_xattr : >>>> +0 >>>> +Option#42: noinline_xattr : >>>> +0 >>>> +Option#44: inline_xattr_size=400 : extra,flexible_inline_xattr >>>> +32 >>>> +Option#46: inline_xattr_size=400 : >>>> +32 >>>> +Option#48: inline_data : >>>> +0 >>>> +Option#50: noinline_dentry : >>>> +0 >>>> +Option#52: inline_dentry : >>>> +0 >>>> +Option#54: noinline_dentry : >>>> +0 >>>> +Option#56: flush_merge : >>>> +0 >>>> +Option#58: noflush_merge : >>>> +0 >>>> +Option#60: barrier : >>>> +0 >>>> +Option#62: nobarrier : >>>> +0 >>>> +Option#64: fastboot : >>>> +0 >>>> +Option#66: extent_cache : >>>> +0 >>>> +Option#68: noextent_cache : >>>> +0 >>>> +Option#70: data_flush : >>>> +0 >>>> +Option#72: reserve_root=32768 : >>>> +0 >>>> +Option#74: resuid=1000 : >>>> +0 >>>> +Option#76: resgid=1000 : >>>> +0 >>>> +Option#78: fault_injection=100 : >>>> +0 >>>> +Option#80: fault_type=4095 : >>>> +0 >>>> +Option#82: mode=adaptive : >>>> +0 >>>> +Option#84: mode=lfs : >>>> +0 >>>> +Option#86: mode=fragment:segment : >>>> +0 >>>> +Option#88: mode=fragment:block : >>>> +0 >>>> +Option#90: mode=adaptive : blkzone >>>> +32 >>>> +Option#92: mode=lfs : blkzone >>>> +0 >>>> +Option#94: mode=fragment:segment : blkzone >>>> +32 >>>> +Option#96: mode=fragment:block : blkzone >>>> +32 >>>> +Option#98: usrquota : >>>> +0 >>>> +Option#100: grpquota : >>>> +0 >>>> +Option#102: prjquota : >>>> +32 >>>> +Option#104: usrjquota=ausrquota : >>>> +32 >>>> +Option#106: grpjquota=agrpquota : >>>> +32 >>>> +Option#108: prjjquota=aprjquota : >>>> +32 >>>> +Option#110: jqfmt=vfsold : >>>> +0 >>>> +Option#112: jqfmt=vfsv0 : >>>> +0 >>>> +Option#114: jqfmt=vfsv1 : >>>> +0 >>>> +Option#116: usrjquota= : >>>> +0 >>>> +Option#118: grpjquota= : >>>> +0 >>>> +Option#120: prjjquota= : >>>> +0 >>>> +Option#122: quota : >>>> +0 >>>> +Option#124: noquota : >>>> +0 >>>> +Option#126: alloc_mode=reuse : >>>> +0 >>>> +Option#128: alloc_mode=default : >>>> +0 >>>> +Option#130: fsync_mode=posix : >>>> +0 >>>> +Option#132: fsync_mode=strict : >>>> +0 >>>> +Option#134: fsync_mode=nobarrier : >>>> +0 >>>> +Option#136: test_dummy_encryption : >>>> +32 >>>> +Option#138: test_dummy_encryption=v1 : >>>> +32 >>>> +Option#140: test_dummy_encryption=v2 : >>>> +32 >>>> +Option#142: checkpoint=enable : >>>> +0 >>>> +Option#144: checkpoint=disable : >>>> +0 >>>> +Option#146: checkpoint=disable:32768 : >>>> +0 >>>> +Option#148: checkpoint=disable:50% : >>>> +0 >>>> +Option#150: checkpoint_merge : >>>> +0 >>>> +Option#152: nocheckpoint_merge : >>>> +0 >>>> +Option#154: compress_algorithm=lzo : >>>> +0 >>>> +Option#156: compress_algorithm=lzo : extra,compression >>>> +0 >>>> +Option#158: compress_algorithm=lz4 : extra,compression >>>> +0 >>>> +Option#160: compress_algorithm=zstd : extra,compression >>>> +0 >>>> +Option#162: compress_algorithm=lzo-rle : extra,compression >>>> +0 >>>> +Option#164: compress_algorithm=lz4:3 : extra,compression >>>> +0 >>>> +Option#166: compress_algorithm=zstd:1 : extra,compression >>>> +0 >>>> +Option#168: compress_log_size=8 : extra,compression >>>> +0 >>>> +Option#170: compress_extension=so : extra,compression >>>> +0 >>>> +Option#172: nocompress_extension=so : extra,compression >>>> +0 >>>> +Option#174: nocompress_extension=* : extra,compression >>>> +0 >>>> +Option#176: compress_extension=so,nocompress_extension=so : extra,compression >>>> +0 >>>> +Option#178: compress_chksum : extra,compression >>>> +0 >>>> +Option#180: compress_mode=fs : extra,compression >>>> +0 >>>> +Option#182: compress_mode=user : extra,compression >>>> +0 >>>> +Option#184: compress_cache : extra,compression >>>> +0 >>>> +Option#186: inlinecrypt : >>>> +0 >>>> +Option#188: atgc : >>>> +0 >>>> +Option#190: discard_unit=block : >>>> +0 >>>> +Option#192: discard_unit=segment : >>>> +0 >>>> +Option#194: discard_unit=section : >>>> +0 >>>> +Option#196: discard_unit=block : blkzone >>>> +0 >>>> +Option#198: discard_unit=segment : blkzone >>>> +0 >>>> +Option#200: discard_unit=section : blkzone >>>> +0 >>>> +Option#202: memory=normal : >>>> +0 >>>> +Option#204: memory=low : >>>> +0 >>>> +Option#206: age_extent_cache : >>>> +0 >>>> +Option#208: errors=panic : >>>> +0 >>>> +Option#210: errors=continue : >>>> +0 >>>> +Option#212: errors=remount-ro : >>>> +0 >>>> +Option#214: nat_bits : >>>> +0 >>>> +Option#216: atgc,mode=lfs : >>>> +32 >>>> +Option#218: ro,flush_merge : >>>> +32 >>>> +Option#220: rw : ro >>>> +0 >>>> +Option#222: norecovery,ro : >>>> +0 >>>> -- >>>> 2.49.0 >>>> >>> >> > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-07-09 6:18 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-07-04 11:48 [f2fs-dev] [PATCH v2] f2fs/015: test mount options Chao Yu via Linux-f2fs-devel 2025-07-04 18:14 ` Zorro Lang via Linux-f2fs-devel 2025-07-07 9:05 ` Chao Yu via Linux-f2fs-devel 2025-07-08 14:29 ` Zorro Lang via Linux-f2fs-devel 2025-07-09 6:18 ` Chao Yu via Linux-f2fs-devel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).