Commit 6482c3dc authored by Al Viro's avatar Al Viro Committed by Greg Kroah-Hartman
Browse files

fs/fhandle.c: fix a race in call of has_locked_children()



commit 1f282cdc upstream.

may_decode_fh() is calling has_locked_children() while holding no locks.
That's an oopsable race...

The rest of the callers are safe since they are holding namespace_sem and
are guaranteed a positive refcount on the mount in question.

Rename the current has_locked_children() to __has_locked_children(), make
it static and switch the fs/namespace.c users to it.

Make has_locked_children() a wrapper for __has_locked_children(), calling
the latter under read_seqlock_excl(&mount_lock).

Reviewed-by: default avatarChristian Brauner <brauner@kernel.org>
Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
Fixes: 620c266f ("fhandle: relax open_by_handle_at() permission checks")
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
[ Harshit: Resolved conflicts due to missing commit:
  db04662e ("fs: allow detached mounts in clone_private_mount()") in
  linux-6.12.y ]
Signed-off-by: default avatarHarshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b9290581
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment