This is a note to let you know that I've just added the patch titled ksmbd: only v2 leases handle the directory to the 6.6-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: ksmbd-only-v2-leases-handle-the-directory.patch and it can be found in the queue-6.6 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 77bebd186442a7d703b796784db7495129cc3e70 Mon Sep 17 00:00:00 2001 From: Namjae Jeon <linkinjeon@xxxxxxxxxx> Date: Mon, 15 Jan 2024 10:24:54 +0900 Subject: ksmbd: only v2 leases handle the directory From: Namjae Jeon <linkinjeon@xxxxxxxxxx> commit 77bebd186442a7d703b796784db7495129cc3e70 upstream. When smb2 leases is disable, ksmbd can send oplock break notification and cause wait oplock break ack timeout. It may appear like hang when accessing a directory. This patch make only v2 leases handle the directory. Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Namjae Jeon <linkinjeon@xxxxxxxxxx> Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- fs/smb/server/oplock.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/fs/smb/server/oplock.c +++ b/fs/smb/server/oplock.c @@ -1191,6 +1191,12 @@ int smb_grant_oplock(struct ksmbd_work * bool prev_op_has_lease; __le32 prev_op_state = 0; + /* Only v2 leases handle the directory */ + if (S_ISDIR(file_inode(fp->filp)->i_mode)) { + if (!lctx || lctx->version != 2) + return 0; + } + opinfo = alloc_opinfo(work, pid, tid); if (!opinfo) return -ENOMEM; Patches currently in stable-queue which might be from linkinjeon@xxxxxxxxxx are queue-6.6/ksmbd-validate-the-zero-field-of-packet-header.patch queue-6.6/ksmbd-validate-mech-token-in-session-setup.patch queue-6.6/ksmbd-only-v2-leases-handle-the-directory.patch queue-6.6/ksmbd-fix-uaf-issue-in-ksmbd_tcp_new_connection.patch