Files
linux-stable-mirror/fs
NeilBrown d5fc1400a3 smb/server: avoid deadlock when linking with ReplaceIfExists
If smb2_create_link() is called with ReplaceIfExists set and the name
does exist then a deadlock will happen.

ksmbd_vfs_kern_path_locked() will return with success and the parent
directory will be locked.  ksmbd_vfs_remove_file() will then remove the
file.  ksmbd_vfs_link() will then be called while the parent is still
locked.  It will try to lock the same parent and will deadlock.

This patch moves the ksmbd_vfs_kern_path_unlock() call to *before*
ksmbd_vfs_link() and then simplifies the code, removing the file_present
flag variable.

Signed-off-by: NeilBrown <neil@brown.name>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
2025-07-20 19:17:14 -05:00
..
2025-07-12 04:02:44 +08:00
2025-06-18 21:35:29 +00:00
2025-07-14 10:13:31 +02:00
2025-05-14 22:40:55 -04:00
2025-07-02 14:41:39 +02:00
2025-07-02 14:41:39 +02:00
2025-05-15 12:03:12 +02:00
2025-05-23 14:20:44 +02:00
2025-06-06 10:00:17 +02:00