Hi Chris,

Here's a pre-preview of my conversion of btrfs to the mount API:

        
https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=btrfs-mount-api

The last patch is the one that does the heavy lifting.

The code compiles and you can load the module.  in theory it should work, but
I haven't actually tried mounting anything with it yet.  What you *can* do is
use the samples/statx/test-fs-query program to list all the parameters that
the converted btrfs takes via the fsinfo() system call (see attached).

However, I have to disappear off for the moment.

David
---

[root@andromeda ~]# ./test-fs-query btrfs          
Filesystem btrfs has 39 parameters
- PARAM[  0] type=8(string)
- PARAM[  1] type=1(no-val) -neg-no
- PARAM[  2] type=8(string) -dep
- PARAM[  3] type=1(no-val) -neg-no
- PARAM[  4] type=1(no-val)
- PARAM[  5] type=1(no-val)
- PARAM[  6] type=3(u32)
- PARAM[  7] type=1(no-val)
- PARAM[  8] type=3(u32)
- PARAM[  9] type=7(enum) -opt
- PARAM[ 10] type=7(enum) -opt
- PARAM[ 11] type=1(no-val) -neg-no
- PARAM[ 12] type=1(no-val) -neg-no
- PARAM[ 13] type=1(no-val) -neg-no
- PARAM[ 14] type=1(no-val)
- PARAM[ 15] type=8(string)
- PARAM[ 16] type=1(no-val) -neg-no
- PARAM[ 17] type=1(no-val) -neg-no
- PARAM[ 18] type=7(enum)
- PARAM[ 19] type=1(no-val) -neg-no
- PARAM[ 20] type=7(enum)
- PARAM[ 21] type=1(no-val) -neg-no
- PARAM[ 22] type=8(string)
- PARAM[ 23] type=1(no-val)
- PARAM[ 24] type=3(u32)
- PARAM[ 25] type=1(no-val) -neg-no
- PARAM[ 26] type=1(no-val)
- PARAM[ 27] type=1(no-val)
- PARAM[ 28] type=1(no-val)
- PARAM[ 29] type=7(enum) -opt -neg-no
- PARAM[ 30] type=1(no-val) -neg-no
- PARAM[ 31] type=1(no-val) -neg-no
- PARAM[ 32] type=8(string) -opt
- PARAM[ 33] type=13(u64)
- PARAM[ 34] type=6(s32) -dep
- PARAM[ 35] type=3(u32)
- PARAM[ 36] type=1(no-val) -neg-no
- PARAM[ 37] type=1(no-val)
- PARAM[ 38] type=1(no-val)
Filesystem has 39 parameter names
- NAME[  0] acl -> 1
- NAME[  1] alloc_start -> 2
- NAME[  2] autodefrag -> 13
- NAME[  3] barrier -> 3
- NAME[  4] check_int -> 4
- NAME[  5] check_int_data -> 5
- NAME[  6] check_int_print_mask -> 6
- NAME[  7] clear_cache -> 7
- NAME[  8] commit -> 8
- NAME[  9] compress -> 10
- NAME[ 10] compress-force -> 9
- NAME[ 11] datacow -> 11
- NAME[ 12] datasum -> 12
- NAME[ 13] degraded -> 14
- NAME[ 14] device -> 15
- NAME[ 15] discard -> 16
- NAME[ 16] enospc_debug -> 17
- NAME[ 17] fatal_errors -> 18
- NAME[ 18] flushoncommit -> 19
- NAME[ 19] fragment -> 20
- NAME[ 20] inode_cache -> 21
- NAME[ 21] max_inline -> 22
- NAME[ 22] metadata_ratio -> 24
- NAME[ 23] nologreplay -> 23
- NAME[ 24] recovery -> 25
- NAME[ 25] ref_verify -> 26
- NAME[ 26] rescan_uuid_tree -> 27
- NAME[ 27] skip_balance -> 28
- NAME[ 28] source -> 0
- NAME[ 29] space_cache -> 29
- NAME[ 30] ssd -> 30
- NAME[ 31] ssd_spread -> 31
- NAME[ 32] subvol -> 32
- NAME[ 33] subvolid -> 33
- NAME[ 34] subvolrootid -> 34
- NAME[ 35] thread_pool -> 35
- NAME[ 36] treelog -> 36
- NAME[ 37] usebackuproot -> 37
- NAME[ 38] user_subvol_rm_allowed -> 38
Filesystem has 33 enumeration values
- ENUM[  0]  20.all
- ENUM[  1]  20.data
- ENUM[  2]  20.metadata
- ENUM[  3]  10.zlib
- ENUM[  4]  10.zlib:1
- ENUM[  5]  10.zlib:2
- ENUM[  6]  10.zlib:3
- ENUM[  7]  10.zlib:4
- ENUM[  8]  10.zlib:5
- ENUM[  9]  10.zlib:6
- ENUM[ 10]  10.zlib:7
- ENUM[ 11]  10.zlib:8
- ENUM[ 12]  10.zlib:9
- ENUM[ 13]  10.lzo
- ENUM[ 14]  10.zstd
- ENUM[ 15]  10.no
- ENUM[ 16]   9.zlib
- ENUM[ 17]   9.zlib:1
- ENUM[ 18]   9.zlib:2
- ENUM[ 19]   9.zlib:3
- ENUM[ 20]   9.zlib:4
- ENUM[ 21]   9.zlib:5
- ENUM[ 22]   9.zlib:6
- ENUM[ 23]   9.zlib:7
- ENUM[ 24]   9.zlib:8
- ENUM[ 25]   9.zlib:9
- ENUM[ 26]   9.lzo
- ENUM[ 27]   9.zstd
- ENUM[ 28]   9.no
- ENUM[ 29]  29.v1
- ENUM[ 30]  29.v2
- ENUM[ 31]  18.bug
- ENUM[ 32]  18.panic

Reply via email to