Subject: linux-next: manual merge of the vfs-brauner tree with the fuse tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 2 Sep 2024 09:34:02 +1000

Hi all,

Today's linux-next merge of the vfs-brauner tree got conflicts in:

  fs/fuse/inode.c
  include/uapi/linux/fuse.h

between commit:

  5fb9c98e9d8d ("fuse: add support for no forget requests")

from the fuse tree and commits:

  d2c5937035e5 ("fs/fuse: add FUSE_OWNER_UID_GID_EXT extension")
  9aace2eda1bd ("fs/fuse: allow idmapped mounts")

from the vfs-brauner tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc fs/fuse/inode.c
index ef9c35c6210b,b840189ac8be..000000000000
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@@ -1347,8 -1343,14 +1347,16 @@@ static void process_init_reply(struct f
  			}
  			if (flags & FUSE_NO_EXPORT_SUPPORT)
  				fm->sb->s_export_op = &fuse_export_fid_operations;
 +			if (flags & FUSE_NO_FORGET)
 +				fc->no_forget = 1;
+ 			if (flags & FUSE_OWNER_UID_GID_EXT)
+ 				fc->owner_uid_gid_ext = 1;
+ 			if (flags & FUSE_ALLOW_IDMAP) {
+ 				if (fc->owner_uid_gid_ext && fc->default_permissions)
+ 					fm->sb->s_iflags &= ~SB_I_NOIDMAP;
+ 				else
+ 					ok = false;
+ 			}
  		} else {
  			ra_pages = fc->max_read / PAGE_SIZE;
  			fc->no_lock = 1;
@@@ -1396,7 -1398,8 +1404,8 @@@ void fuse_send_init(struct fuse_mount *
  		FUSE_HANDLE_KILLPRIV_V2 | FUSE_SETXATTR_EXT | FUSE_INIT_EXT |
  		FUSE_SECURITY_CTX | FUSE_CREATE_SUPP_GROUP |
  		FUSE_HAS_EXPIRE_ONLY | FUSE_DIRECT_IO_ALLOW_MMAP |
- 		FUSE_NO_EXPORT_SUPPORT | FUSE_HAS_RESEND | FUSE_NO_FORGET;
 -		FUSE_NO_EXPORT_SUPPORT | FUSE_HAS_RESEND | FUSE_OWNER_UID_GID_EXT |
 -		FUSE_ALLOW_IDMAP;
++		FUSE_NO_EXPORT_SUPPORT | FUSE_HAS_RESEND | FUSE_NO_FORGET |
++		FUSE_OWNER_UID_GID_EXT | FUSE_ALLOW_IDMAP;
  #ifdef CONFIG_FUSE_DAX
  	if (fm->fc->dax)
  		flags |= FUSE_MAP_ALIGNMENT;
diff --cc include/uapi/linux/fuse.h
index d7be14947152,b23e8247ce43..000000000000
--- a/include/uapi/linux/fuse.h
+++ b/include/uapi/linux/fuse.h
@@@ -217,7 -217,11 +217,12 @@@
   *  - add backing_id to fuse_open_out, add FOPEN_PASSTHROUGH open flag
   *  - add FUSE_NO_EXPORT_SUPPORT init flag
   *  - add FUSE_NOTIFY_RESEND, add FUSE_HAS_RESEND init flag
 + *  - add FUSE_NO_FORGET init flag
+  *
+  *  7.41
+  *  - add FUSE_EXT_OWNER_UID_GID
+  *  - add FUSE_OWNER_UID_GID_EXT
+  *  - add FUSE_ALLOW_IDMAP
   */
  
  #ifndef _LINUX_FUSE_H
@@@ -422,7 -426,9 +427,10 @@@ struct fuse_file_lock 
   * FUSE_NO_EXPORT_SUPPORT: explicitly disable export support
   * FUSE_HAS_RESEND: kernel supports resending pending requests, and the high bit
   *		    of the request ID indicates resend requests
 + * FUSE_NO_FORGET: 	disable forget requests
+  * FUSE_OWNER_UID_GID_EXT: add inode owner UID/GID info to create, mkdir,
+  *			   symlink and mknod
+  * FUSE_ALLOW_IDMAP: allow creation of idmapped mounts
   */
  #define FUSE_ASYNC_READ		(1 << 0)
  #define FUSE_POSIX_LOCKS	(1 << 1)