1 # Copyright 2018 syzkaller project authors. All rights reserved. 2 # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4 include <linux/fs.h> 5 6 mount(src ptr[in, filename], dst ptr[in, filename], type ptr[in, string[filesystem]], flags flags[mount_flags], data buffer[in, opt]) 7 umount2(path ptr[in, filename], flags flags[umount_flags]) 8 9 mount$bpf(src const[0], dst ptr[in, filename], type ptr[in, string["bpf"]], flags flags[mount_flags], opts ptr[in, fs_options[bpf_options]]) 10 11 filesystem = "sysfs", "rootfs", "ramfs", "tmpfs", "devtmpfs", "debugfs", "securityfs", "sockfs", "pipefs", "anon_inodefs", "devpts", "ext3", "ext2", "ext4", "hugetlbfs", "vfat", "ecryptfs", "fuseblk", "fuse", "rpc_pipefs", "nfs", "nfs4", "nfsd", "binfmt_misc", "autofs", "xfs", "jfs", "msdos", "ntfs", "minix", "hfs", "hfsplus", "qnx4", "ufs", "btrfs", "configfs", "ncpfs", "qnx6", "exofs", "befs", "vxfs", "gfs2", "gfs2meta", "fusectl", "bfs", "nsfs", "efs", "cifs", "efivarfs", "affs", "tracefs", "bdev", "ocfs2", "ocfs2_dlmfs", "hpfs", "proc", "afs", "reiserfs", "jffs2", "romfs", "aio", "sysv", "v7", "udf", "ceph", "pstore", "adfs", "9p", "hostfs", "squashfs", "cramfs", "iso9660", "coda", "nilfs2", "logfs", "overlay", "f2fs", "omfs", "ubifs", "openpromfs", "bpf", "cgroup", "cgroup2", "cpuset", "mqueue", "aufs", "selinuxfs" 12 13 syz_read_part_table(size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]]) 14 15 syz_mount_image$vfat(fs ptr[in, string["vfat"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[vfat_options]]) 16 17 syz_mount_image$msdos(fs ptr[in, string["msdos"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[msdos_options]]) 18 19 syz_mount_image$bfs(fs ptr[in, string["bfs"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts const[0]) 20 21 syz_mount_image$xfs(fs ptr[in, string["xfs"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[xfs_options]]) 22 23 syz_mount_image$minix(fs ptr[in, string["minix"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts const[0]) 24 25 syz_mount_image$reiserfs(fs ptr[in, string["reiserfs"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[reiserfs_options]]) 26 27 syz_mount_image$hfs(fs ptr[in, string["hfs"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[hfs_options]]) 28 29 syz_mount_image$hfsplus(fs ptr[in, string["hfsplus"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[hfsplus_options]]) 30 31 syz_mount_image$iso9660(fs ptr[in, string["iso9660"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[iso9660_options]]) 32 33 syz_mount_image$gfs2(fs ptr[in, string["gfs2"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[gfs2_options]]) 34 35 syz_mount_image$jfs(fs ptr[in, string["jfs"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[jfs_options]]) 36 37 syz_mount_image$btrfs(fs ptr[in, string["btrfs"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[btrfs_options]]) 38 39 syz_mount_image$ntfs(fs ptr[in, string["ntfs"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[ntfs_options]]) 40 41 syz_mount_image$ext4(fs ptr[in, string[ext4_types]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[ext4_options]]) 42 43 ext4_types = "ext4", "ext3", "ext2" 44 45 syz_mount_image$f2fs(fs ptr[in, string["f2fs"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, fs_options[f2fs_options]]) 46 47 syz_mount_image$ocfs2(fs ptr[in, string["ocfs2"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, string]) 48 49 syz_mount_image$nfs(fs ptr[in, string["nfs"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, string]) 50 51 syz_mount_image$nfs4(fs ptr[in, string["nfs4"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, string]) 52 53 syz_mount_image$cifs(fs ptr[in, string["cifs"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, string]) 54 55 syz_mount_image$ceph(fs ptr[in, string["ceph"]], dir ptr[in, filename], size intptr, nsegs len[segments], segments ptr[in, array[fs_image_segment]], flags flags[mount_flags], opts ptr[in, string]) 56 57 fs_image_segment { 58 data ptr[in, array[int8]] 59 size len[data, intptr] 60 offset intptr 61 } 62 63 type fs_options[ELEMS] { 64 elems array[fs_opt_elem[ELEMS]] 65 null const[0, int8] 66 } [packed] 67 68 type fs_opt_elem[ELEMS] { 69 elem ELEMS 70 comma const[',', int8] 71 } [packed] 72 73 type fs_opt[NAME, TYPE] { 74 name stringnoz[NAME] 75 eq const['=', int8] 76 val TYPE 77 } [packed] 78 79 type fs_opt_str[NAME] fs_opt[NAME, stringnoz] 80 type fs_opt_dec[NAME, VAL] fs_opt[NAME, fmt[dec, VAL]] 81 type fs_opt_hex[NAME, VAL] fs_opt[NAME, fmt[hex, VAL]] 82 type fs_opt_oct[NAME, VAL] fs_opt[NAME, fmt[oct, VAL]] 83 type fs_opt_dec_suffix[NAME] fs_opt[NAME, array[flags[fs_opt_digits_suffix, int8]]] 84 type fs_opt_filename[NAME] fs_opt[NAME, stringnoz[filename]] 85 type fs_opt_codepage[NAME] fs_opt[NAME, stringnoz[codepages_names]] 86 type fs_opt_cp_num[NAME] fs_opt[NAME, stringnoz[codepage_nums]] 87 88 fs_opt_digits_suffix = '-', 'x', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'k', 'm', 'g', 't', 'p', 'e' 89 90 msdos_options [ 91 fat fat_options 92 nodots stringnoz["nodots"] 93 dots stringnoz["dots"] 94 ] [varlen] 95 96 vfat_options [ 97 fat fat_options 98 iocharset fs_opt_codepage["iocharset"] 99 rodir stringnoz["rodir"] 100 utf8no stringnoz["utf8=0"] 101 utf8 stringnoz["utf8=1"] 102 uni_xlateno stringnoz["uni_xlate=0"] 103 uni_xlate stringnoz["uni_xlate=1"] 104 numtail stringnoz["nonumtail=0"] 105 nonumtail stringnoz["nnonumtail=1"] 106 shortname_lower stringnoz["shortname=lower"] 107 shortname_win95 stringnoz["shortname=win95"] 108 shortname_winnt stringnoz["shortname=winnt"] 109 shortname_mixed stringnoz["shortname=mixed"] 110 ] [varlen] 111 112 fat_options [ 113 check_relaxed stringnoz["check=relaxed"] 114 check_strict stringnoz["check=strict"] 115 check_normal stringnoz["check=normal"] 116 usefree stringnoz["usefree"] 117 nocase stringnoz["nocase"] 118 quiet stringnoz["quiet"] 119 showexec stringnoz["showexec"] 120 debug stringnoz["debug"] 121 sys_immutable stringnoz["sys_immutable"] 122 flush stringnoz["flush"] 123 tz_utc stringnoz["tz=UTC"] 124 errors_continue stringnoz["errors=continue"] 125 errors_remount stringnoz["errors=remount-ro"] 126 discard stringnoz["discard"] 127 nfs stringnoz["nfs"] 128 nfs_nostale_ro stringnoz["nfs=nostale_ro"] 129 dos1xfloppy stringnoz["dos1xfloppy"] 130 uid fs_opt_hex["uid", uid] 131 gid fs_opt_hex["gid", gid] 132 umask fs_opt_oct["umask", int32] 133 dmask fs_opt_oct["dmask", int32] 134 fmask fs_opt_oct["fmask", int32] 135 allow_utime fs_opt_oct["allow_utime", int32] 136 time_offset fs_opt_hex["time_offset", int32[-1440:1440]] 137 codepage fs_opt_cp_num["codepage"] 138 ] [varlen] 139 140 xfs_options [ 141 wsync stringnoz["wsync"] 142 noalign stringnoz["noalign"] 143 swalloc stringnoz["swalloc"] 144 nouuid stringnoz["nouuid"] 145 mtpt stringnoz["mtpt"] 146 grpid stringnoz["grpid"] 147 nogrpid stringnoz["nogrpid"] 148 bsdgroups stringnoz["bsdgroups"] 149 sysvgroups stringnoz["sysvgroups"] 150 norecovery stringnoz["norecovery"] 151 inode64 stringnoz["inode64"] 152 inode32 stringnoz["inode32"] 153 ikeep stringnoz["ikeep"] 154 noikeep stringnoz["noikeep"] 155 largeio stringnoz["largeio"] 156 nolargeio stringnoz["nolargeio"] 157 attr2 stringnoz["attr2"] 158 noattr2 stringnoz["noattr2"] 159 filestreams stringnoz["filestreams"] 160 quota stringnoz["quota"] 161 noquota stringnoz["noquota"] 162 lazytime stringnoz["lazytime"] 163 nolazytime stringnoz["nolazytime"] 164 usrquota stringnoz["usrquota"] 165 grpquota stringnoz["grpquota"] 166 prjquota stringnoz["prjquota"] 167 uquota stringnoz["uquota"] 168 gquota stringnoz["gquota"] 169 pquota stringnoz["pquota"] 170 uqnoenforce stringnoz["uqnoenforce"] 171 gqnoenforce stringnoz["gqnoenforce"] 172 pqnoenforce stringnoz["pqnoenforce"] 173 qnoenforce stringnoz["qnoenforce"] 174 discard stringnoz["discard"] 175 nodiscard stringnoz["nodiscard"] 176 dax stringnoz["dax"] 177 barrier stringnoz["barrier"] 178 nobarrier stringnoz["nobarrier"] 179 logbufs fs_opt_dec["logbufs", int32[-1:8]] 180 biosize fs_opt_dec["biosize", int32] 181 sunit fs_opt_hex["sunit", int32] 182 swidth fs_opt_hex["swidth", int32] 183 logbsize fs_opt_dec_suffix["logbsize"] 184 allocsize fs_opt_dec_suffix["allocsize"] 185 logdev fs_opt_filename["logdev"] 186 rtdev fs_opt_filename["rtdev"] 187 ] [varlen] 188 189 reiserfs_options [ 190 tails_on stringnoz["tails=on"] 191 tails_off stringnoz["tails=off"] 192 tails_small stringnoz["tails=small"] 193 notail stringnoz["notail"] 194 conv stringnoz["conv"] 195 noattrs stringnoz["noattrs"] 196 expose_privroot stringnoz["expose_privroot"] 197 user_xattr stringnoz["user_xattr"] 198 nouser_xattr stringnoz["nouser_xattr"] 199 acl stringnoz["acl"] 200 noacl stringnoz["noacl"] 201 replayonly stringnoz["replayonly"] 202 nolargeio stringnoz["nolargeio"] 203 usrquota stringnoz["usrquota"] 204 grpquota stringnoz["grpquota"] 205 noquota stringnoz["noquota"] 206 usrjquota stringnoz["usrjquota"] 207 usrjquota_file stringnoz["usrjquota=syz"] 208 grpjquota stringnoz["grpjquota"] 209 commit fs_opt_hex["commit", int32] 210 resize fs_opt_hex["resize", int32] 211 resize_auto stringnoz["resize=auto"] 212 jdev fs_opt_filename["jdev"] 213 jqfmt_vfsold stringnoz["jqfmt=vfsold"] 214 jqfmt_vfsv0 stringnoz["jqfmt=vfsv0"] 215 hash_tea stringnoz["hash=tea"] 216 hash_rupasov stringnoz["hash=rupasov"] 217 hash_r5 stringnoz["hash=r5"] 218 balloc_noborder stringnoz["block-allocator=noborder"] 219 balloc_border stringnoz["block-allocator=border"] 220 balloc_no_unhash_reloc stringnoz["block-allocator=no_unhashed_relocation"] 221 balloc_hashed_reloc stringnoz["block-allocator=hashed_relocation"] 222 balloc_test4 stringnoz["block-allocator=test4"] 223 balloc_notest4 stringnoz["block-allocator=notest4"] 224 barrier_none stringnoz["barrier=none"] 225 barrier_flush stringnoz["barrier=flush"] 226 data_ordered stringnoz["data=ordered"] 227 data_journal stringnoz["data=journal"] 228 data_writeback stringnoz["data=writeback"] 229 errors_continue stringnoz["errors=continue"] 230 errors_ro_remount stringnoz["errors=ro-remount"] 231 ] [varlen] 232 233 hfs_options [ 234 quiet stringnoz["quiet"] 235 umask fs_opt_oct["umask", int32] 236 file_umask fs_opt_oct["file_umask", int32] 237 dir_umask fs_opt_oct["dir_umask", int32] 238 uid fs_opt_hex["uid", uid] 239 gid fs_opt_hex["gid", gid] 240 part fs_opt_hex["part", int32] 241 session fs_opt_hex["session", int32] 242 type fs_opt["type", array[int8, 4]] 243 creator fs_opt["creator", array[int8, 4]] 244 codepage fs_opt_codepage["codepage"] 245 iocharset fs_opt_codepage["iocharset"] 246 ] [varlen] 247 248 hfsplus_options [ 249 decompose stringnoz["decompose"] 250 nodecompose stringnoz["nodecompose"] 251 barrier stringnoz["barrier"] 252 nobarrier stringnoz["nobarrier"] 253 force stringnoz["force"] 254 umask fs_opt_oct["umask", int32] 255 type fs_opt["type", array[int8, 4]] 256 creator fs_opt["creator", array[int8, 4]] 257 uid fs_opt_hex["uid", uid] 258 gid fs_opt_hex["gid", gid] 259 part fs_opt_hex["part", int32] 260 session fs_opt_hex["session", int32] 261 nls fs_opt_codepage["nls"] 262 ] [varlen] 263 264 iso9660_options [ 265 norock stringnoz["norock"] 266 nojoliet stringnoz["nojoliet"] 267 unhide stringnoz["unhide"] 268 hide stringnoz["hide"] 269 cruft stringnoz["cruft"] 270 utf8 stringnoz["utf8"] 271 map_acorn stringnoz["map=acorn"] 272 map_normal stringnoz["map=normal"] 273 map_off stringnoz["map=off"] 274 check_relaxed stringnoz["check=relaxed"] 275 check_strict stringnoz["check=strict"] 276 overriderock stringnoz["overriderockperm"] 277 nocompress stringnoz["nocompress"] 278 session fs_opt_hex["session", int32[0:98]] 279 sbsector fs_opt_hex["sbsector", int32] 280 uid fs_opt_hex["uid", uid] 281 gid fs_opt_hex["gid", gid] 282 mode fs_opt_hex["mode", int32] 283 dmode fs_opt_hex["dmode", int32] 284 block fs_opt_hex["block", flags[iso9660_blocks]] 285 iocharset fs_opt_codepage["iocharset"] 286 ] [varlen] 287 288 iso9660_blocks = 512, 1024, 2048 289 290 gfs2_options [ 291 spectator stringnoz["spectator"] 292 norecovery stringnoz["norecovery"] 293 ignore_local_fs stringnoz["ignore_local_fs"] 294 localflocks stringnoz["localflocks"] 295 localcaching stringnoz["localcaching"] 296 upgrade stringnoz["upgrade"] 297 acl stringnoz["acl"] 298 noacl stringnoz["noacl"] 299 quota_off stringnoz["quota=off"] 300 quota_account stringnoz["quota=account"] 301 quota_on stringnoz["quota=on"] 302 quota stringnoz["quota"] 303 noquota stringnoz["noquota"] 304 suiddir stringnoz["suiddir"] 305 nosuiddir stringnoz["nosuiddir"] 306 data_writeback stringnoz["data=writeback"] 307 data_ordered stringnoz["data=ordered"] 308 meta stringnoz["meta"] 309 discard stringnoz["discard"] 310 nodiscard stringnoz["nodiscard"] 311 errors_withdraw stringnoz["errors=withdraw"] 312 barrier stringnoz["barrier"] 313 nobarrier stringnoz["nobarrier"] 314 rgrplvb stringnoz["rgrplvb"] 315 norgrplvb stringnoz["norgrplvb"] 316 loccookie stringnoz["loccookie"] 317 noloccookie stringnoz["noloccookie"] 318 commit fs_opt_hex["commit", int32] 319 statfs_quantum fs_opt_hex["statfs_quantum", int32] 320 statfs_percent fs_opt_hex["statfs_percent", int32] 321 quota_quantum fs_opt_hex["quota_quantum", int32] 322 lockproto_dlm stringnoz["lockproto=dlm"] 323 lockproto_nolock stringnoz["lockproto=lock_nolock"] 324 locktable fs_opt_str["locktable"] 325 hostdata fs_opt_str["hostdata"] 326 ] [varlen] 327 328 jfs_options [ 329 integrity stringnoz["integrity"] 330 nointegrity stringnoz["nointegrity"] 331 resize stringnoz["resize"] 332 noquota stringnoz["noquota"] 333 quota stringnoz["quota"] 334 usrquota stringnoz["usrquota"] 335 grpquota stringnoz["grpquota"] 336 discard stringnoz["discard"] 337 nodiscard stringnoz["nodiscard"] 338 iocharset fs_opt_codepage["iocharset"] 339 errors_continue stringnoz["errors=continue"] 340 errors_remount stringnoz["errors=remount-ro"] 341 resize_size fs_opt_hex["resize", int32] 342 uid fs_opt_hex["uid", uid] 343 gid fs_opt_hex["gid", gid] 344 umask fs_opt_hex["umask", int32] 345 discard_size fs_opt_hex["discard", int32] 346 ] [varlen] 347 348 btrfs_options [ 349 degraded stringnoz["degraded"] 350 nodatasum stringnoz["nodatasum"] 351 datasum stringnoz["datasum"] 352 nodatacow stringnoz["nodatacow"] 353 datacow stringnoz["datacow"] 354 nobarrier stringnoz["nobarrier"] 355 barrier stringnoz["barrier"] 356 compress stringnoz["compress"] 357 compress_force stringnoz["compress-force"] 358 ssd stringnoz["ssd"] 359 ssd_spread stringnoz["ssd_spread"] 360 nossd_spread stringnoz["nossd_spread"] 361 nossd stringnoz["nossd"] 362 acl stringnoz["acl"] 363 noacl stringnoz["noacl"] 364 notreelog stringnoz["notreelog"] 365 treelog stringnoz["treelog"] 366 flushoncommit stringnoz["flushoncommit"] 367 noflushoncommit stringnoz["noflushoncommit"] 368 discard stringnoz["discard"] 369 nodiscard stringnoz["nodiscard"] 370 space_cache stringnoz["space_cache"] 371 clear_cache stringnoz["clear_cache"] 372 user_subvol_rm stringnoz["user_subvol_rm_allowed"] 373 enospc_debug stringnoz["enospc_debug"] 374 noenospc_debug stringnoz["noenospc_debug"] 375 autodefrag stringnoz["autodefrag"] 376 noautodefrag stringnoz["noautodefrag"] 377 inode_cache stringnoz["inode_cache"] 378 noinode_cache stringnoz["noinode_cache"] 379 nospace_cache stringnoz["nospace_cache"] 380 usebackuproot stringnoz["usebackuproot"] 381 skip_balance stringnoz["skip_balance"] 382 check_int stringnoz["check_int"] 383 check_int_data stringnoz["check_int_data"] 384 rescan_uuid_tree stringnoz["rescan_uuid_tree"] 385 fragment_data stringnoz["fragment=data"] 386 fragment_metadata stringnoz["fragment=metadata"] 387 fragment_all stringnoz["fragment=all"] 388 ref_verify stringnoz["ref_verify"] 389 metadata_ratio fs_opt_hex["metadata_ratio", int32] 390 check_int_print_mask fs_opt_hex["check_int_print_mask", int32] 391 commit fs_opt_hex["commit", int32] 392 thread_pool fs_opt_hex["thread_pool", int32] 393 device fs_opt_filename["device"] 394 subvolid fs_opt_hex["subvolid", int64] 395 subvol fs_opt_str["subvol"] 396 max_inline fs_opt_dec_suffix["max_inline"] 397 compress_algo fs_opt["compress", stringnoz[btrfs_compress_algos]] 398 compress_force_algo fs_opt["compress-force", stringnoz[btrfs_compress_algos]] 399 space_cache_v1 stringnoz["space_cache=v1"] 400 space_cache_v2 stringnoz["space_cache=v2"] 401 ] [varlen] 402 403 btrfs_compress_algos = "zlib", "lzo", "zstd", "no" 404 405 ntfs_options [ 406 uid fs_opt_hex["uid", uid] 407 gid fs_opt_hex["gid", gid] 408 umask fs_opt_oct["umask", int32] 409 fmask fs_opt_oct["fmask", int32] 410 dmask fs_opt_oct["dmask", int32] 411 mft_zone_multiplier fs_opt_hex["mft_zone_multiplier", int32[-1:4]] 412 show_sys_files_no stringnoz["show_sys_files=no"] 413 show_sys_files_yes stringnoz["show_sys_files=yes"] 414 case_sensitive_no stringnoz["case_sensitive=no"] 415 case_sensitive_yes stringnoz["case_sensitive=yes"] 416 disable_sparse_no stringnoz["disable_sparse=no"] 417 disable_sparse_yes stringnoz["disable_sparse=yes"] 418 errors_remount stringnoz["errors=remount-ro"] 419 errors_continue stringnoz["errors=continue"] 420 errors_recover stringnoz["errors=recover"] 421 nls fs_opt_codepage["nls"] 422 utf8 stringnoz["utf8"] 423 ] [varlen] 424 425 ext4_options [ 426 bsddf stringnoz["bsddf"] 427 minixdf stringnoz["minixdf"] 428 grpid stringnoz["grpid"] 429 bsdgroups stringnoz["bsdgroups"] 430 nogrpid stringnoz["nogrpid"] 431 sysvgroups stringnoz["sysvgroups"] 432 errors_continue stringnoz["errors=continue"] 433 errors_remount stringnoz["errors=remount-ro"] 434 nouid32 stringnoz["nouid32"] 435 debug stringnoz["debug"] 436 oldalloc stringnoz["oldalloc"] 437 orlov stringnoz["orlov"] 438 user_xattr stringnoz["user_xattr"] 439 nouser_xattr stringnoz["nouser_xattr"] 440 acl stringnoz["acl"] 441 noacl stringnoz["noacl"] 442 norecovery stringnoz["norecovery"] 443 noload stringnoz["noload"] 444 nobh stringnoz["nobh"] 445 bh stringnoz["bh"] 446 journal_checksum stringnoz["journal_checksum"] 447 nojournal_checksum stringnoz["nojournal_checksum"] 448 journal_async_commit stringnoz["journal_async_commit"] 449 abort stringnoz["abort"] 450 data_journal stringnoz["data=journal"] 451 data_ordered stringnoz["data=ordered"] 452 data_writeback stringnoz["data=writeback"] 453 data_err_abort stringnoz["data_err=abort"] 454 data_err_ignore stringnoz["data_err=ignore"] 455 usrjquota stringnoz["usrjquota="] 456 grpjquota stringnoz["grpjquota="] 457 jqfmt_vfsold stringnoz["jqfmt=vfsold"] 458 jqfmt_vfsv0 stringnoz["jqfmt=vfsv0"] 459 jqfmt_vfsv1 stringnoz["jqfmt=vfsv1"] 460 grpquota stringnoz["grpquota"] 461 noquota stringnoz["noquota"] 462 quota stringnoz["quota"] 463 usrquota stringnoz["usrquota"] 464 prjquota stringnoz["prjquota"] 465 barrier stringnoz["barrier"] 466 nobarrier stringnoz["nobarrier"] 467 i_version stringnoz["i_version"] 468 dax stringnoz["dax"] 469 delalloc stringnoz["delalloc"] 470 lazytime stringnoz["lazytime"] 471 nolazytime stringnoz["nolazytime"] 472 nodelalloc stringnoz["nodelalloc"] 473 mblk_io_submit stringnoz["mblk_io_submit"] 474 nomblk_io_submit stringnoz["nomblk_io_submit"] 475 block_validity stringnoz["block_validity"] 476 noblock_validity stringnoz["noblock_validity"] 477 auto_da_alloc stringnoz["auto_da_alloc"] 478 noauto_da_alloc stringnoz["noauto_da_alloc"] 479 dioread_nolock stringnoz["dioread_nolock"] 480 dioread_lock stringnoz["dioread_lock"] 481 discard stringnoz["discard"] 482 nodiscard stringnoz["nodiscard"] 483 init_itable stringnoz["init_itable"] 484 noinit_itable stringnoz["noinit_itable"] 485 test_dummy_encryption stringnoz["test_dummy_encryption"] 486 nombcache stringnoz["nombcache"] 487 resgid fs_opt_hex["resgid", gid] 488 resuid fs_opt_hex["resuid", uid] 489 sb fs_opt_hex["sb", int32] 490 commit fs_opt_hex["commit", int32] 491 min_batch_time fs_opt_hex["min_batch_time", int32] 492 max_batch_time fs_opt_hex["max_batch_time", int32] 493 journal_dev fs_opt_hex["journal_dev", int32] 494 barrier_val fs_opt_hex["barrier", int32] 495 stripe fs_opt_hex["stripe", int32] 496 debug_want_extra_isize fs_opt_hex["debug_want_extra_isize", int32] 497 inode_readahead_blks fs_opt_hex["inode_readahead_blks", flags[ext4_inode_readahead_blks]] 498 journal_ioprio fs_opt_hex["journal_ioprio", int32[0:7]] 499 auto_da_alloc_val fs_opt_hex["auto_da_alloc", int32] 500 init_itable_val fs_opt_hex["init_itable", int32] 501 max_dir_size_kb fs_opt_hex["max_dir_size_kb", int32] 502 journal_path fs_opt_filename["journal_path"] 503 grpjquota_path fs_opt_filename["grpjquota"] 504 usrjquota_path fs_opt_filename["usrjquota"] 505 ] [varlen] 506 507 ext4_inode_readahead_blks = 0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x20000, 0x40000, 0x80000, 0x100000, 0x200000, 0x400000, 0x800000, 0x1000000, 0x2000000, 0x4000000, 0x8000000 508 509 f2fs_options [ 510 background_gc_sync stringnoz["background_gc=sync"] 511 background_gc_off stringnoz["background_gc=off"] 512 background_gc_on stringnoz["background_gc=on"] 513 disable_roll_forward stringnoz["disable_roll_forward"] 514 norecovery stringnoz["norecovery"] 515 discard stringnoz["discard"] 516 nodiscard stringnoz["nodiscard"] 517 noheap stringnoz["noheap"] 518 heap stringnoz["heap"] 519 user_xattr stringnoz["user_xattr"] 520 nouser_xattr stringnoz["nouser_xattr"] 521 acl stringnoz["acl"] 522 noacl stringnoz["noacl"] 523 six_active_logs stringnoz["active_logs=6"] 524 four_active_logs stringnoz["active_logs=4"] 525 two_active_logs stringnoz["active_logs=2"] 526 disable_ext_identify stringnoz["disable_ext_identify"] 527 inline_xattr stringnoz["inline_xattr"] 528 noinline_xattr stringnoz["noinline_xattr"] 529 inline_xattr_size fs_opt_hex["inline_xattr_size", int32] 530 inline_data stringnoz["inline_data"] 531 noinline_data stringnoz["noinline_data"] 532 inline_dentry stringnoz["inline_dentry"] 533 noinline_dentry stringnoz["noinline_dentry"] 534 flush_merge stringnoz["flush_merge"] 535 noflush_merge stringnoz["noflush_merge"] 536 nobarrier stringnoz["nobarrier"] 537 fastboot stringnoz["fastboot"] 538 extent_cache stringnoz["extent_cache"] 539 noextent_cache stringnoz["noextent_cache"] 540 data_flush stringnoz["data_flush"] 541 adaptive_mode stringnoz["mode=adaptive"] 542 lfs_mode stringnoz["mode=lfs"] 543 resgid fs_opt_hex["resgid", gid] 544 resuid fs_opt_hex["resuid", uid] 545 lazytime stringnoz["lazytime"] 546 nolazytime stringnoz["nolazytime"] 547 quota stringnoz["quota"] 548 noquota stringnoz["noquota"] 549 usrquota fs_opt_str["usrquota"] 550 grpquota fs_opt_str["grpquota"] 551 prjquota fs_opt_str["prjquota"] 552 usrjquota fs_opt_str["usrjquota"] 553 grpjquota fs_opt_str["grpjquota"] 554 prjjquota fs_opt_str["prjjquota"] 555 jqfmt_vfsold stringnoz["jqfmt=vfsold"] 556 jqfmt_vfsv0 stringnoz["jqfmt=vfsv0"] 557 jqfmt_vfsv1 stringnoz["jqfmt=vfsv1"] 558 whint_mode_user stringnoz["whint_mode=user-based"] 559 whint_mode_off stringnoz["whint_mode=off"] 560 whint_mode_fs stringnoz["whint_mode=fs-based"] 561 alloc_mode_def stringnoz["alloc_mode=default"] 562 alloc_mode_reuse stringnoz["alloc_mode=reuse"] 563 fsync_mode_posix stringnoz["fsync_mode=posix"] 564 fsync_mode_strict stringnoz["fsync_mode=strict"] 565 test_dummy_encryption stringnoz["test_dummy_encryption"] 566 ] [varlen] 567 568 bpf_options [ 569 mode fs_opt_oct["mode", int32] 570 ] [varlen] 571 572 codepage_nums = "1250", "1251", "1255", "437", "737", "775", "850", "852", "855", "857", "860", "861", "862", "863", "864", "865", "866", "869", "874", "932", "936", "949", "950" 573 codepages_names = "macceltic", "maccenteuro", "maccroatian", "maccyrillic", "macgaelic", "macgreek", "maciceland", "macinuit", "macroman", "macromanian", "macturkish", "ascii", "default", "cp1250", "cp1251", "cp1255", "cp437", "cp737", "cp775", "cp850", "cp852", "cp855", "cp857", "cp860", "cp861", "cp862", "cp863", "cp864", "cp865", "cp866", "cp869", "cp874", "cp932", "cp936", "cp949", "cp950", "euc-jp", "iso8859-13", "iso8859-14", "iso8859-15", "iso8859-1", "iso8859-2", "iso8859-3", "iso8859-4", "iso8859-5", "iso8859-6", "iso8859-7", "iso8859-9", "koi8-r", "koi8-ru", "koi8-u", "utf8", "none" 574 mount_flags = MS_BIND, MS_DIRSYNC, MS_MANDLOCK, MS_MOVE, MS_NOATIME, MS_NODEV, MS_NODIRATIME, MS_NOEXEC, MS_NOSUID, MS_RDONLY, MS_RELATIME, MS_REMOUNT, MS_SILENT, MS_STRICTATIME, MS_SYNCHRONOUS, MS_REC, MS_POSIXACL, MS_UNBINDABLE, MS_PRIVATE, MS_SLAVE, MS_SHARED, MS_I_VERSION, MS_LAZYTIME 575 umount_flags = MNT_FORCE, MNT_DETACH, MNT_EXPIRE, UMOUNT_NOFOLLOW 576