Files
linux/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-04-29 13:08:20 +02:00
2025-06-18 21:35:29 +00:00
2025-07-14 10:13:31 +02:00
2025-04-28 10:54:39 +02:00
2024-12-03 10:40:36 +01:00
2024-08-21 22:32:58 +02:00
2025-05-14 22:40:55 -04:00
2025-04-07 09:36:48 +02:00
2025-07-02 14:41:39 +02:00
2024-12-09 11:34:29 +01:00
2024-12-17 09:16:11 +01: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
2024-11-03 01:28:07 -05:00
2024-11-03 01:28:06 -05:00
2024-11-03 01:28:06 -05:00
2025-06-06 10:00:17 +02:00