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

From: Mark Brown <[email-masked]>
Date: Wed, 15 Apr 2026 11:43:15 +0100

Hi all,

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

  kernel/fork.c
  kernel/nsproxy.c

between commit:

  7c8a4671dc324 ("Merge tag 'vfs-7.1-rc1.mount.v2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs")

from the origin tree and commit:

  8ee708daac8a2 ("Merge branch 'kernel-7.1.misc' into vfs.all")

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.

diff --combined kernel/fork.c
index 8c61c8dd43720,17497679cec70..0000000000000
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@@ -2113,7 -2113,6 +2113,7 @@@ __latent_entropy struct task_struct *co
  	ftrace_graph_init_task(p);
  
  	rt_mutex_init_task(p);
 +	raw_spin_lock_init(&p->blocked_lock);
  
  	lockdep_assert_irqs_enabled();
  #ifdef CONFIG_PROVE_LOCKING
@@@ -2956,10 -2955,9 +2956,10 @@@ static inline bool clone3_stack_valid(s
  static bool clone3_args_valid(struct kernel_clone_args *kargs)
  {
  	/* Verify that no unknown flags are passed along. */
 -	if (kargs->flags & ~(CLONE_LEGACY_FLAGS | CLONE_CLEAR_SIGHAND |
 -			     CLONE_INTO_CGROUP | CLONE_AUTOREAP | CLONE_NNP |
 -			     CLONE_PIDFD_AUTOKILL | CLONE_EMPTY_MNTNS))
 +	if (kargs->flags &
 +	    ~(CLONE_LEGACY_FLAGS | CLONE_CLEAR_SIGHAND |
 +	      CLONE_INTO_CGROUP | CLONE_AUTOREAP | CLONE_NNP |
 +	      CLONE_PIDFD_AUTOKILL | CLONE_EMPTY_MNTNS))
  		return false;
  
  	/*
@@@ -3110,7 -3108,7 +3110,7 @@@ static int check_unshare_flags(unsigne
  {
  	if (unshare_flags & ~(CLONE_THREAD|CLONE_FS|CLONE_SIGHAND|
  				CLONE_VM|CLONE_FILES|CLONE_SYSVSEM|
 -				CLONE_NS_ALL|UNSHARE_EMPTY_MNTNS))
 +				CLONE_NS_ALL | UNSHARE_EMPTY_MNTNS))
  		return -EINVAL;
  	/*
  	 * Not implemented, but pretend it works if there is nothing
diff --combined kernel/nsproxy.c
index d9d3d5973bf52,71bf313087671..0000000000000
--- a/kernel/nsproxy.c
+++ b/kernel/nsproxy.c
@@@ -215,7 -215,7 +215,7 @@@ int unshare_nsproxy_namespaces(unsigne
  	u64 flags = unshare_flags;
  	int err = 0;
  
- 	if (!(flags & (CLONE_NS_ALL & ~CLONE_NEWUSER)))
+ 	if (!(flags & (CLONE_NS_ALL & ~(CLONE_NEWUSER | UNSHARE_EMPTY_MNTNS))))
  		return 0;
  
  	user_ns = new_cred ? new_cred->user_ns : current_user_ns();