aboutsummaryrefslogtreecommitdiff
path: root/fs/namespace.c
diff options
context:
space:
mode:
authorGravatar Christian Brauner <brauner@kernel.org> 2023-03-30 09:13:16 +0200
committerGravatar Christian Brauner <brauner@kernel.org> 2023-03-31 12:13:37 +0200
commitcb2239c198ad9fbd5aced22cf93e45562da781eb (patch)
tree5d43c4188c28df77d264af1f4e46e0274a0843cf /fs/namespace.c
parentLinux 6.3-rc4 (diff)
downloadlinux-cb2239c198ad9fbd5aced22cf93e45562da781eb.tar.gz
linux-cb2239c198ad9fbd5aced22cf93e45562da781eb.tar.bz2
linux-cb2239c198ad9fbd5aced22cf93e45562da781eb.zip
fs: drop peer group ids under namespace lock
When cleaning up peer group ids in the failure path we need to make sure to hold on to the namespace lock. Otherwise another thread might just turn the mount from a shared into a non-shared mount concurrently. Link: https://lore.kernel.org/lkml/00000000000088694505f8132d77@google.com Fixes: 2a1867219c7b ("fs: add mount_setattr()") Reported-by: syzbot+8ac3859139c685c4f597@syzkaller.appspotmail.com Cc: stable@vger.kernel.org # 5.12+ Message-Id: <20230330-vfs-mount_setattr-propagation-fix-v1-1-37548d91533b@kernel.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/namespace.c')
-rw-r--r--fs/namespace.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/namespace.c b/fs/namespace.c
index bc0f15257b49..6836e937ee61 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -4183,9 +4183,9 @@ out:
unlock_mount_hash();
if (kattr->propagation) {
- namespace_unlock();
if (err)
cleanup_group_ids(mnt, NULL);
+ namespace_unlock();
}
return err;