Pull fuse updates from Miklos Szeredi: - Add support for idmapped fuse mounts (Alexander Mikhalitsyn) - Add optimization when checking for writeback (yangyun) - Add tracepoints (Josef Bacik) - Clean up writeback code (Joanne Koong) - Clean up request queuing (me) - Misc fixes * tag 'fuse-update-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: (32 commits) fuse: use exclusive lock when FUSE_I_CACHE_IO_MODE is set fuse: clear FR_PENDING if abort is detected when sending request fs/fuse: convert to use invalid_mnt_idmap fs/mnt_idmapping: introduce an invalid_mnt_idmap fs/fuse: introduce and use fuse_simple_idmap_request() helper fs/fuse: fix null-ptr-deref when checking SB_I_NOIDMAP flag fuse: allow O_PATH fd for FUSE_DEV_IOC_BACKING_OPEN virtio_fs: allow idmapped mounts fuse: allow idmapped mounts fuse: warn if fuse_access is called when idmapped mounts are allowed fuse: handle idmappings properly in ->write_iter() fuse: support idmapped ->rename op fuse: support idmapped ->set_acl fuse: drop idmap argument from __fuse_get_acl fuse: support idmapped ->setattr op fuse: support idmapped ->permission inode op fuse: support idmapped getattr inode op fuse: support idmap for mkdir/mknod/symlink/create/tmpfile fuse: support idmapped FUSE_EXT_GROUPS fuse: add an idmap argument to fuse_simple_request ...
Showing the changes to include/uapi/linux (1 of 15 files). Show all
Unified · Split
| @@ -217,6 +217,9 @@ · 216 unmodified lines | ||
| 217 | 217 | * - add backing_id to fuse_open_out, add FOPEN_PASSTHROUGH open flag |
| 218 | 218 | * - add FUSE_NO_EXPORT_SUPPORT init flag |
| 219 | 219 | * - add FUSE_NOTIFY_RESEND, add FUSE_HAS_RESEND init flag |
| 220 | + * | |
| 221 | + * 7.41 | |
| 222 | + * - add FUSE_ALLOW_IDMAP | |
| 220 | 223 | */ |
| 221 | 224 | |
| 222 | 225 | #ifndef _LINUX_FUSE_H |
| @@ -252,7 +255,7 @@ · 29 unmodified lines | ||
| 252 | 255 | #define FUSE_KERNEL_VERSION 7 |
| 253 | 256 | |
| 254 | 257 | /** Minor version number of this interface */ |
| 255 | −#define FUSE_KERNEL_MINOR_VERSION 40 | |
| 258 | +#define FUSE_KERNEL_MINOR_VERSION 41 | |
| 256 | 259 | |
| 257 | 260 | /** The node ID of the root inode */ |
| 258 | 261 | #define FUSE_ROOT_ID 1 |
| @@ -421,6 +424,7 @@ struct fuse_file_lock { · 162 unmodified lines | ||
| 421 | 424 | * FUSE_NO_EXPORT_SUPPORT: explicitly disable export support |
| 422 | 425 | * FUSE_HAS_RESEND: kernel supports resending pending requests, and the high bit |
| 423 | 426 | * of the request ID indicates resend requests |
| 427 | + * FUSE_ALLOW_IDMAP: allow creation of idmapped mounts | |
| 424 | 428 | */ |
| 425 | 429 | #define FUSE_ASYNC_READ (1 << 0) |
| 426 | 430 | #define FUSE_POSIX_LOCKS (1 << 1) |
| @@ -466,6 +470,7 @@ struct fuse_file_lock { · 39 unmodified lines | ||
| 466 | 470 | |
| 467 | 471 | /* Obsolete alias for FUSE_DIRECT_IO_ALLOW_MMAP */ |
| 468 | 472 | #define FUSE_DIRECT_IO_RELAX FUSE_DIRECT_IO_ALLOW_MMAP |
| 473 | +#define FUSE_ALLOW_IDMAP (1ULL << 40) | |
| 469 | 474 | |
| 470 | 475 | /** |
| 471 | 476 | * CUSE INIT request/reply flags |
| @@ -984,6 +989,21 @@ struct fuse_fallocate_in { · 512 unmodified lines | ||
| 984 | 989 | */ |
| 985 | 990 | #define FUSE_UNIQUE_RESEND (1ULL << 63) |
| 986 | 991 | |
| 992 | +/** | |
| 993 | + * This value will be set by the kernel to | |
| 994 | + * (struct fuse_in_header).{uid,gid} fields in | |
| 995 | + * case when: | |
| 996 | + * - fuse daemon enabled FUSE_ALLOW_IDMAP | |
| 997 | + * - idmapping information is not available and uid/gid | |
| 998 | + * can not be mapped in accordance with an idmapping. | |
| 999 | + * | |
| 1000 | + * Note: an idmapping information always available | |
| 1001 | + * for inode creation operations like: | |
| 1002 | + * FUSE_MKNOD, FUSE_SYMLINK, FUSE_MKDIR, FUSE_TMPFILE, | |
| 1003 | + * FUSE_CREATE and FUSE_RENAME2 (with RENAME_WHITEOUT). | |
| 1004 | + */ | |
| 1005 | +#define FUSE_INVALID_UIDGID ((uint32_t)(-1)) | |
| 1006 | + | |
| 987 | 1007 | struct fuse_in_header { |
| 988 | 1008 | uint32_t len; |
| 989 | 1009 | uint32_t opcode; |