diff options
| author | Sablin Viacheslav <sjava1902@gmail.com> | 2024-11-13 01:16:42 +0300 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2024-11-29 14:34:36 +0000 |
| commit | 2c633c86520193693e3e2fab35f7115e5ac7f747 (patch) | |
| tree | 1407ad24789b91ed6d09be8cdd0a498e1f83186e /sys/linux | |
| parent | 5df2386563cbffa1bbbb9d0b8ec1eebb98d051ae (diff) | |
sys/linux: updated fuse fs specifications
Diffstat (limited to 'sys/linux')
| -rw-r--r-- | sys/linux/fs_fuse.txt | 71 | ||||
| -rw-r--r-- | sys/linux/fs_fuse.txt.const | 37 | ||||
| -rw-r--r-- | sys/linux/test/fuse_deadlock | 2 | ||||
| -rw-r--r-- | sys/linux/test/fuse_getdents64 | 6 | ||||
| -rw-r--r-- | sys/linux/test/syz_fuse_handle_req | 4 | ||||
| -rw-r--r-- | sys/linux/test/syz_mount_image_fuse | 4 |
6 files changed, 114 insertions, 10 deletions
diff --git a/sys/linux/fs_fuse.txt b/sys/linux/fs_fuse.txt index ae7944ed4..21f7a9c64 100644 --- a/sys/linux/fs_fuse.txt +++ b/sys/linux/fs_fuse.txt @@ -12,6 +12,8 @@ resource fd_fuse[fd] openat$fuse(fd const[AT_FDCWD], file ptr[in, string["/dev/fuse"]], flags const[O_RDWR], mode const[0]) fd_fuse openat$cuse(fd const[AT_FDCWD], file ptr[in, string["/dev/cuse"]], flags const[O_RDWR], mode const[0]) fd_fuse ioctl$FUSE_DEV_IOC_CLONE(fd fd_fuse, cmd const[FUSE_DEV_IOC_CLONE], arg ptr[in, fd_fuse]) +ioctl$FUSE_DEV_IOC_BACKING_OPEN(fd fd_fuse, cmd const[FUSE_DEV_IOC_BACKING_OPEN], arg ptr[in, fuse_backing_map]) +ioctl$FUSE_DEV_IOC_BACKING_CLOSE(fd fd_fuse, cmd const[FUSE_DEV_IOC_BACKING_CLOSE], arg ptr[in, int32]) type read_buffer array[int8, FUSE_MIN_READ_BUFFER] read$FUSE(fd fd_fuse, buf ptr[out, fuse_in[read_buffer]], len bytesize[buf]) @@ -34,12 +36,14 @@ write$FUSE_ENTRY(fd fd_fuse, arg ptr[in, fuse_out[fuse_entry_out]], len bytesize write$FUSE_CREATE_OPEN(fd fd_fuse, arg ptr[in, fuse_out[fuse_create_open_out]], len bytesize[arg]) write$FUSE_DIRENT(fd fd_fuse, arg ptr[in, fuse_out[array[fuse_dirent]]], len bytesize[arg]) write$FUSE_DIRENTPLUS(fd fd_fuse, arg ptr[in, fuse_out[array[fuse_direntplus]]], len bytesize[arg]) +write$FUSE_STATX(fd fd_fuse, arg ptr[in, fuse_out[fuse_statx_out]], len bytesize[arg]) write$FUSE_NOTIFY_POLL(fd fd_fuse, arg ptr[in, fuse_notify[FUSE_NOTIFY_POLL, fuse_notify_poll_wakeup_out]], len bytesize[arg]) write$FUSE_NOTIFY_INVAL_INODE(fd fd_fuse, arg ptr[in, fuse_notify[FUSE_NOTIFY_INVAL_INODE, fuse_notify_inval_inode_out]], len bytesize[arg]) write$FUSE_NOTIFY_INVAL_ENTRY(fd fd_fuse, arg ptr[in, fuse_notify[FUSE_NOTIFY_INVAL_ENTRY, fuse_notify_inval_entry_out]], len bytesize[arg]) write$FUSE_NOTIFY_STORE(fd fd_fuse, arg ptr[in, fuse_notify[FUSE_NOTIFY_STORE, fuse_notify_store_out]], len bytesize[arg]) write$FUSE_NOTIFY_RETRIEVE(fd fd_fuse, arg ptr[in, fuse_notify[FUSE_NOTIFY_RETRIEVE, fuse_notify_retrieve_out]], len bytesize[arg]) write$FUSE_NOTIFY_DELETE(fd fd_fuse, arg ptr[in, fuse_notify[FUSE_NOTIFY_DELETE, fuse_notify_delete_out]], len bytesize[arg]) +write$FUSE_NOTIFY_RESEND(fd fd_fuse, arg ptr[in, fuse_notify[FUSE_NOTIFY_RESEND, const[0, int32]]], len bytesize[arg]) syz_mount_image$fuse(fs ptr[in, string["fuse"]], dir ptr[in, filename], flags flags[mount_flags], opts ptr[in, fuse_options], chdir bool8, size const[0], img ptr[in, array[int8]]) fd_dir syz_fuse_handle_req(fd fd_fuse, buf ptr[in, read_buffer], len bytesize[buf], res ptr[in, syz_fuse_req_out]) @@ -93,10 +97,24 @@ fuse_init_out { time_gran int32 max_pages const[0, int16] map_alignment const[0, int16] - unused array[const[0, int32], 8] + flags2 flags[fuse_init_flags2, int32] + max_stack_depth int32 + unused array[const[0, int32], 6] } -fuse_init_flags = FUSE_ASYNC_READ, FUSE_POSIX_LOCKS, FUSE_FILE_OPS, FUSE_ATOMIC_O_TRUNC, FUSE_EXPORT_SUPPORT, FUSE_BIG_WRITES, FUSE_DONT_MASK, FUSE_SPLICE_WRITE, FUSE_SPLICE_MOVE, FUSE_SPLICE_READ, FUSE_FLOCK_LOCKS, FUSE_HAS_IOCTL_DIR, FUSE_AUTO_INVAL_DATA, FUSE_DO_READDIRPLUS, FUSE_READDIRPLUS_AUTO, FUSE_ASYNC_DIO, FUSE_WRITEBACK_CACHE, FUSE_NO_OPEN_SUPPORT, FUSE_PARALLEL_DIROPS, FUSE_HANDLE_KILLPRIV, FUSE_POSIX_ACL, FUSE_ABORT_ERROR, FUSE_MAX_PAGES, FUSE_CACHE_SYMLINKS, FUSE_NO_OPENDIR_SUPPORT, FUSE_EXPLICIT_INVAL_DATA +fuse_init_flags = FUSE_ASYNC_READ, FUSE_POSIX_LOCKS, FUSE_FILE_OPS, FUSE_ATOMIC_O_TRUNC, FUSE_EXPORT_SUPPORT, FUSE_BIG_WRITES, FUSE_DONT_MASK, FUSE_SPLICE_WRITE, FUSE_SPLICE_MOVE, FUSE_SPLICE_READ, FUSE_FLOCK_LOCKS, FUSE_HAS_IOCTL_DIR, FUSE_AUTO_INVAL_DATA, FUSE_DO_READDIRPLUS, FUSE_READDIRPLUS_AUTO, FUSE_ASYNC_DIO, FUSE_WRITEBACK_CACHE, FUSE_NO_OPEN_SUPPORT, FUSE_PARALLEL_DIROPS, FUSE_HANDLE_KILLPRIV, FUSE_POSIX_ACL, FUSE_ABORT_ERROR, FUSE_MAX_PAGES, FUSE_CACHE_SYMLINKS, FUSE_NO_OPENDIR_SUPPORT, FUSE_EXPLICIT_INVAL_DATA, FUSE_MAP_ALIGNMENT, FUSE_SUBMOUNTS, FUSE_HANDLE_KILLPRIV_V2, FUSE_SETXATTR_EXT, FUSE_INIT_EXT, FUSE_INIT_RESERVED +fuse_init_flags2 = FUSE_SECURITY_CTX_FLAG2, FUSE_HAS_INODE_DAX_FLAG2, FUSE_CREATE_SUPP_GROUP_FLAG2, FUSE_HAS_EXPIRE_ONLY_FLAG2, FUSE_DIRECT_IO_ALLOW_MMAP_FLAG2, FUSE_PASSTHROUGH_FLAG2, FUSE_NO_EXPORT_SUPPORT_FLAG2, FUSE_HAS_RESEND_FLAG2, FUSE_DIRECT_IO_RELAX_FLAG2, FUSE_ALLOW_IDMAP_FLAG2 + +define FUSE_SECURITY_CTX_FLAG2 FUSE_SECURITY_CTX >> 32 +define FUSE_HAS_INODE_DAX_FLAG2 FUSE_HAS_INODE_DAX >> 32 +define FUSE_CREATE_SUPP_GROUP_FLAG2 FUSE_CREATE_SUPP_GROUP >> 32 +define FUSE_HAS_EXPIRE_ONLY_FLAG2 FUSE_HAS_EXPIRE_ONLY >> 32 +define FUSE_DIRECT_IO_ALLOW_MMAP_FLAG2 FUSE_DIRECT_IO_ALLOW_MMAP >> 32 +define FUSE_PASSTHROUGH_FLAG2 FUSE_PASSTHROUGH >> 32 +define FUSE_NO_EXPORT_SUPPORT_FLAG2 FUSE_NO_EXPORT_SUPPORT >> 32 +define FUSE_HAS_RESEND_FLAG2 FUSE_HAS_RESEND >> 32 +define FUSE_DIRECT_IO_RELAX_FLAG2 FUSE_DIRECT_IO_RELAX >> 32 +define FUSE_ALLOW_IDMAP_FLAG2 FUSE_ALLOW_IDMAP >> 32 fuse_lseek_out { offset int64 @@ -269,6 +287,48 @@ fuse_notify_retrieve_out { padding const[0, int32] } [packed] +fuse_statx_out { + attr_valid int64 + attr_valid_nsec int32 + flags const[0, int32] + spare array[const[0, int64], 2] + stat fuse_statx +} + +fuse_statx { + mask flags[fuse_statx_masx, int32] + blksize int32 + attributes int64 + nlink int32 + uid uid + gid gid + mode flags[fuse_valid_type, int16] + __spare0 array[const[0, int16], 1] + ino int64 + size int64 + blocks int64 + attributes_mask int64 + atime fuse_sx_time + btime fuse_sx_time + ctime fuse_sx_time + mtime fuse_sx_time + rdev_major int32 + rdev_minor int32 + dev_major int32 + dev_minor int32 + __spare2 array[const[0, int64], 14] +} + +fuse_statx_masx = STATX_TYPE, STATX_MODE, STATX_NLINK, STATX_UID, STATX_GID, STATX_ATIME, STATX_MTIME, STATX_CTIME, STATX_INO, STATX_SIZE, STATX_BLOCKS, STATX_BASIC_STATS, STATX_BTIME, STATX_MNT_ID, STATX_DIOALIGN, STATX_MNT_ID_UNIQUE, STATX_SUBVOL, STATX_WRITE_ATOMIC + +fuse_valid_type = S_IFLNK, S_IFREG, S_IFDIR, S_IFCHR, S_IFBLK, S_IFIFO, S_IFSOCK + +fuse_sx_time { + tv_sec int64 + tv_nsec int32 + __reserved const[0, int32] +} + # Mount options. fuse_options { @@ -311,4 +371,11 @@ syz_fuse_req_out { direntplus ptr[in, syz_fuse_out[array[fuse_direntplus]]] create_open ptr[in, syz_fuse_out[fuse_create_open_out]] ioctl ptr[in, syz_fuse_out[fuse_ioctl_out]] + statx ptr[in, syz_fuse_out[fuse_statx_out]] +} + +fuse_backing_map { + fd fd_fuse + flags const[0, int32] + padding const[0, int64] } diff --git a/sys/linux/fs_fuse.txt.const b/sys/linux/fs_fuse.txt.const index 197bef9a3..63491c362 100644 --- a/sys/linux/fs_fuse.txt.const +++ b/sys/linux/fs_fuse.txt.const @@ -7,13 +7,19 @@ FOPEN_KEEP_CACHE = 2 FOPEN_NONSEEKABLE = 4 FOPEN_STREAM = 16 FUSE_ABORT_ERROR = 2097152 +FUSE_ALLOW_IDMAP_FLAG2 = 256 FUSE_ASYNC_DIO = 32768 FUSE_ASYNC_READ = 1 FUSE_ATOMIC_O_TRUNC = 8 FUSE_AUTO_INVAL_DATA = 4096 FUSE_BIG_WRITES = 32 FUSE_CACHE_SYMLINKS = 8388608 +FUSE_CREATE_SUPP_GROUP_FLAG2 = 4 +FUSE_DEV_IOC_BACKING_CLOSE = 1074062594, mips64le:ppc64le:2147804418 +FUSE_DEV_IOC_BACKING_OPEN = 1074849025, mips64le:ppc64le:2148590849 FUSE_DEV_IOC_CLONE = 2147804416, mips64le:ppc64le:1074062592 +FUSE_DIRECT_IO_ALLOW_MMAP_FLAG2 = 16 +FUSE_DIRECT_IO_RELAX_FLAG2 = 16 FUSE_DONT_MASK = 64 FUSE_DO_READDIRPLUS = 8192 FUSE_EXPLICIT_INVAL_DATA = 33554432 @@ -21,32 +27,63 @@ FUSE_EXPORT_SUPPORT = 16 FUSE_FILE_OPS = 4 FUSE_FLOCK_LOCKS = 1024 FUSE_HANDLE_KILLPRIV = 524288 +FUSE_HANDLE_KILLPRIV_V2 = 268435456 +FUSE_HAS_EXPIRE_ONLY_FLAG2 = 8 +FUSE_HAS_INODE_DAX_FLAG2 = 2 FUSE_HAS_IOCTL_DIR = 2048 +FUSE_HAS_RESEND_FLAG2 = 128 +FUSE_INIT_EXT = 1073741824 +FUSE_INIT_RESERVED = 18446744071562067968 FUSE_IOCTL_RETRY = 4 FUSE_KERNEL_MINOR_VERSION = 41 FUSE_KERNEL_VERSION = 7 +FUSE_MAP_ALIGNMENT = 67108864 FUSE_MAX_PAGES = 4194304 FUSE_MIN_READ_BUFFER = 8192 FUSE_NOTIFY_DELETE = 6 FUSE_NOTIFY_INVAL_ENTRY = 3 FUSE_NOTIFY_INVAL_INODE = 2 FUSE_NOTIFY_POLL = 1 +FUSE_NOTIFY_RESEND = 7 FUSE_NOTIFY_RETRIEVE = 5 FUSE_NOTIFY_STORE = 4 +FUSE_NO_EXPORT_SUPPORT_FLAG2 = 64 FUSE_NO_OPENDIR_SUPPORT = 16777216 FUSE_NO_OPEN_SUPPORT = 131072 FUSE_PARALLEL_DIROPS = 262144 +FUSE_PASSTHROUGH_FLAG2 = 32 FUSE_POSIX_ACL = 1048576 FUSE_POSIX_LOCKS = 2 FUSE_READDIRPLUS_AUTO = 16384 +FUSE_SECURITY_CTX_FLAG2 = 1 +FUSE_SETXATTR_EXT = 536870912 FUSE_SPLICE_MOVE = 256 FUSE_SPLICE_READ = 512 FUSE_SPLICE_WRITE = 128 +FUSE_SUBMOUNTS = 134217728 FUSE_WRITEBACK_CACHE = 65536 F_RDLCK = 0 F_UNLCK = 2 F_WRLCK = 1 O_RDWR = 2 +STATX_ATIME = 32 +STATX_BASIC_STATS = 2047 +STATX_BLOCKS = 1024 +STATX_BTIME = 2048 +STATX_CTIME = 128 +STATX_DIOALIGN = 8192 +STATX_GID = 16 +STATX_INO = 256 +STATX_MNT_ID = 4096 +STATX_MNT_ID_UNIQUE = 16384 +STATX_MODE = 2 +STATX_MTIME = 64 +STATX_NLINK = 4 +STATX_SIZE = 512 +STATX_SUBVOL = 32768 +STATX_TYPE = 1 +STATX_UID = 8 +STATX_WRITE_ATOMIC = 65536 S_IFBLK = 24576 S_IFCHR = 8192 S_IFDIR = 16384 diff --git a/sys/linux/test/fuse_deadlock b/sys/linux/test/fuse_deadlock index cb8e7bbe6..491d3ae54 100644 --- a/sys/linux/test/fuse_deadlock +++ b/sys/linux/test/fuse_deadlock @@ -6,6 +6,6 @@ r0 = openat$fuse(0xffffffffffffff9c, &AUTO='/dev/fuse\x00', 0x2, 0x0) mount$fuse(0x0, &AUTO='./file0\x00', &AUTO='fuse\x00', 0x0, &AUTO={{'fd', 0x3d, r0}, 0x2c, {'rootmode', 0x3d, 0x4000}, 0x2c, {'user_id', 0x3d, 0x0}, 0x2c, {'group_id', 0x3d, 0x0}, 0x2c, {[], [], 0x0}}) read$FUSE(r0, &AUTO={AUTO, 0x0, <r1=>0x0, 0x0, 0x0, 0x0, 0x0, ""/8192}, AUTO) pread64(r0, &AUTO=""/236, AUTO, 0x0) # blocked -write$FUSE_INIT(r0, &AUTO={AUTO, 0x0, r1, {AUTO, AUTO, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, "0000000000000000"}}, AUTO) +write$FUSE_INIT(r0, &AUTO={AUTO, 0x0, r1, {AUTO, AUTO, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, "000000000000"}}, AUTO) mkdirat(0xffffffffffffff9c, &AUTO='./file0/file0\x00', 0x0) # unfinished write$FUSE_NOTIFY_INVAL_ENTRY(r0, &AUTO={AUTO, 0x3, 0x0, {0x1, AUTO, 0x0, 'group_id', 0x0}}, AUTO) # unfinished diff --git a/sys/linux/test/fuse_getdents64 b/sys/linux/test/fuse_getdents64 index 2901e9828..07340371e 100644 --- a/sys/linux/test/fuse_getdents64 +++ b/sys/linux/test/fuse_getdents64 @@ -2,8 +2,8 @@ mkdirat(0xffffffffffffff9c, &AUTO='./file0\x00', 0x0) r0 = openat$fuse(0xffffffffffffff9c, &AUTO='/dev/fuse\x00', 0x2, 0x0) mount$fuse(0x0, &AUTO='./file0\x00', &AUTO='fuse\x00', 0x0, &AUTO={{'fd', 0x3d, r0}, 0x2c, {'rootmode', 0x3d, 0x4000}, 0x2c, {'user_id', 0x3d, 0x0}, 0x2c, {'group_id', 0x3d, 0x0}, 0x2c, {[], [], 0x0}}) read$FUSE(r0, &AUTO={AUTO, 0x0, <r1=>0x0, 0x0, 0x0, 0x0, 0x0, ""/8192}, AUTO) -write$FUSE_INIT(r0, &AUTO={AUTO, 0x0, r1, {AUTO, AUTO, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, "0000000000000000"}}, AUTO) +write$FUSE_INIT(r0, &AUTO={AUTO, 0x0, r1, {AUTO, AUTO, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, "000000000000"}}, AUTO) r2 = openat$dir(0xffffffffffffff9c, &AUTO='./file0\x00', 0x0, 0x0) -syz_fuse_handle_req(r0, &AUTO=""/8192, AUTO, &AUTO={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &AUTO={AUTO, 0x0, 0x0, {0x0, 0x8, AUTO}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) +syz_fuse_handle_req(r0, &AUTO=""/8192, AUTO, &AUTO={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &AUTO={AUTO, 0x0, 0x0, {0x0, 0x8, AUTO}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) getdents64(r2, &AUTO=""/1024, AUTO) -syz_fuse_handle_req(r0, &AUTO=""/8192, AUTO, &AUTO={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &AUTO={AUTO, 0x0, 0x0, [{0x0, 0x0, 0x4, 0x0, '#,,-'}]}, 0x0, 0x0, 0x0}) +syz_fuse_handle_req(r0, &AUTO=""/8192, AUTO, &AUTO={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &AUTO={AUTO, 0x0, 0x0, [{0x0, 0x0, 0x4, 0x0, '#,,-'}]}, 0x0, 0x0, 0x0, 0x0}) diff --git a/sys/linux/test/syz_fuse_handle_req b/sys/linux/test/syz_fuse_handle_req index a63aa92df..5d4fa6fbd 100644 --- a/sys/linux/test/syz_fuse_handle_req +++ b/sys/linux/test/syz_fuse_handle_req @@ -5,8 +5,8 @@ r1 = openat$dir(0xffffffffffffff9c, &AUTO='./file0\x00', 0x0, 0x0) # FUSE_INIT -syz_fuse_handle_req(r0, &AUTO=""/8192, AUTO, &AUTO={&AUTO={AUTO, 0x0, 0x0, {AUTO, AUTO, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, AUTO, AUTO, "0000000000000000000000000000000000000000000000000000000000000000"}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) +syz_fuse_handle_req(r0, &AUTO=""/8192, AUTO, &AUTO={&AUTO={AUTO, 0x0, 0x0, {AUTO, AUTO, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, AUTO, AUTO, 0x0, 0x0, "000000000000000000000000000000000000000000000000"}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) # FUSE_OPENDIR -syz_fuse_handle_req(r0, &AUTO=""/8192, AUTO, &AUTO={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &AUTO={AUTO, 0x0, 0x0, {0x0, 0x0, 0x0}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) +syz_fuse_handle_req(r0, &AUTO=""/8192, AUTO, &AUTO={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &AUTO={AUTO, 0x0, 0x0, {0x0, 0x0, 0x0}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) diff --git a/sys/linux/test/syz_mount_image_fuse b/sys/linux/test/syz_mount_image_fuse index c93da305d..a5fe37ea8 100644 --- a/sys/linux/test/syz_mount_image_fuse +++ b/sys/linux/test/syz_mount_image_fuse @@ -5,8 +5,8 @@ r3 = syz_mount_image$fuse(&AUTO='fuse\x00', &AUTO='./file0\x00', 0x0, &AUTO={{'f # FUSE_INIT -syz_fuse_handle_req(r0, &AUTO=""/8192, AUTO, &AUTO={&AUTO={AUTO, 0x0, 0x0, {AUTO, AUTO, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, AUTO, AUTO, "0000000000000000000000000000000000000000000000000000000000000000"}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) +syz_fuse_handle_req(r0, &AUTO=""/8192, AUTO, &AUTO={&AUTO={AUTO, 0x0, 0x0, {AUTO, AUTO, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, AUTO, AUTO, 0x0, 0x0, "000000000000000000000000000000000000000000000000"}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) # FUSE_OPENDIR -syz_fuse_handle_req(r0, &AUTO=""/8192, AUTO, &AUTO={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &AUTO={AUTO, 0x0, 0x0, {0x0, 0x0, 0x0}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) +syz_fuse_handle_req(r0, &AUTO=""/8192, AUTO, &AUTO={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &AUTO={AUTO, 0x0, 0x0, {0x0, 0x0, 0x0}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) |
