From: Al Viro Date: Sun, 6 Jul 2025 01:26:45 +0000 (+0100) Subject: ksmbd: fix a mount write count leak in ksmbd_vfs_kern_path_locked() X-Git-Tag: v6.16-rc6~8^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=277627b431a0a6401635c416a21b2a0f77a77347;p=thirdparty%2Fkernel%2Flinux.git ksmbd: fix a mount write count leak in ksmbd_vfs_kern_path_locked() If the call of ksmbd_vfs_lock_parent() fails, we drop the parent_path references and return an error. We need to drop the write access we just got on parent_path->mnt before we drop the mount reference - callers assume that ksmbd_vfs_kern_path_locked() returns with mount write access grabbed if and only if it has returned 0. Fixes: 864fb5d37163 ("ksmbd: fix possible deadlock in smb2_open") Signed-off-by: Al Viro Acked-by: Namjae Jeon Signed-off-by: Steve French --- diff --git a/fs/smb/server/vfs.c b/fs/smb/server/vfs.c index 0f3aad12e4953..d3437f6644e33 100644 --- a/fs/smb/server/vfs.c +++ b/fs/smb/server/vfs.c @@ -1282,6 +1282,7 @@ out1: err = ksmbd_vfs_lock_parent(parent_path->dentry, path->dentry); if (err) { + mnt_drop_write(parent_path->mnt); path_put(path); path_put(parent_path); }