Pull fuse updates from Miklos Szeredi: - Fix a page locking bug in write (introduced in 2.6.26) - Allow sgid bit to be killed in setacl() - Miscellaneous fixes and cleanups * tag 'fuse-update-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: cuse: simplify refcount cuse: prevent clone virtiofs: fix userns virtiofs: remove useless function virtiofs: split requests that exceed virtqueue size virtiofs: fix memory leak in virtio_fs_probe() fuse: invalidate attrs when page writeback completes fuse: add a flag FUSE_SETXATTR_ACL_KILL_SGID to kill SGID fuse: extend FUSE_SETXATTR request fuse: fix matching of FUSE_DEV_IOC_CLONE command fuse: fix a typo fuse: don't zero pages twice fuse: fix typo for fuse_conn.max_pages comment fuse: fix write deadlock
Showing the changes to include/uapi/linux (1 of 9 files). Show all
Unified · Split
| @@ -179,6 +179,8 @@ · 178 unmodified lines | ||
| 179 | 179 | * 7.33 |
| 180 | 180 | * - add FUSE_HANDLE_KILLPRIV_V2, FUSE_WRITE_KILL_SUIDGID, FATTR_KILL_SUIDGID |
| 181 | 181 | * - add FUSE_OPEN_KILL_SUIDGID |
| 182 | + * - extend fuse_setxattr_in, add FUSE_SETXATTR_EXT | |
| 183 | + * - add FUSE_SETXATTR_ACL_KILL_SGID | |
| 182 | 184 | */ |
| 183 | 185 | |
| 184 | 186 | #ifndef _LINUX_FUSE_H |
| @@ -330,6 +332,7 @@ struct fuse_file_lock { · 145 unmodified lines | ||
| 330 | 332 | * does not have CAP_FSETID. Additionally upon |
| 331 | 333 | * write/truncate sgid is killed only if file has group |
| 332 | 334 | * execute permission. (Same as Linux VFS behavior). |
| 335 | + * FUSE_SETXATTR_EXT: Server supports extended struct fuse_setxattr_in | |
| 333 | 336 | */ |
| 334 | 337 | #define FUSE_ASYNC_READ (1 << 0) |
| 335 | 338 | #define FUSE_POSIX_LOCKS (1 << 1) |
| @@ -360,6 +363,7 @@ struct fuse_file_lock { · 24 unmodified lines | ||
| 360 | 363 | #define FUSE_MAP_ALIGNMENT (1 << 26) |
| 361 | 364 | #define FUSE_SUBMOUNTS (1 << 27) |
| 362 | 365 | #define FUSE_HANDLE_KILLPRIV_V2 (1 << 28) |
| 366 | +#define FUSE_SETXATTR_EXT (1 << 29) | |
| 363 | 367 | |
| 364 | 368 | /** |
| 365 | 369 | * CUSE INIT request/reply flags |
| @@ -451,6 +455,12 @@ struct fuse_file_lock { · 85 unmodified lines | ||
| 451 | 455 | */ |
| 452 | 456 | #define FUSE_OPEN_KILL_SUIDGID (1 << 0) |
| 453 | 457 | |
| 458 | +/** | |
| 459 | + * setxattr flags | |
| 460 | + * FUSE_SETXATTR_ACL_KILL_SGID: Clear SGID when system.posix_acl_access is set | |
| 461 | + */ | |
| 462 | +#define FUSE_SETXATTR_ACL_KILL_SGID (1 << 0) | |
| 463 | + | |
| 454 | 464 | enum fuse_opcode { |
| 455 | 465 | FUSE_LOOKUP = 1, |
| 456 | 466 | FUSE_FORGET = 2, /* no reply */ |
| @@ -681,9 +691,13 @@ struct fuse_fsync_in { · 224 unmodified lines | ||
| 681 | 691 | uint32_t padding; |
| 682 | 692 | }; |
| 683 | 693 | |
| 694 | +#define FUSE_COMPAT_SETXATTR_IN_SIZE 8 | |
| 695 | + | |
| 684 | 696 | struct fuse_setxattr_in { |
| 685 | 697 | uint32_t size; |
| 686 | 698 | uint32_t flags; |
| 699 | + uint32_t setxattr_flags; | |
| 700 | + uint32_t padding; | |
| 687 | 701 | }; |
| 688 | 702 | |
| 689 | 703 | struct fuse_getxattr_in { |