540-ksmbd-only-v2-leases-handle-the-directory.patch 1018 B

1234567891011121314151617181920212223242526272829303132
  1. From cb1d41b99e4afa062f904339666fae2578559718 Mon Sep 17 00:00:00 2001
  2. From: Namjae Jeon <[email protected]>
  3. Date: Mon, 15 Jan 2024 10:24:54 +0900
  4. Subject: [PATCH] ksmbd: only v2 leases handle the directory
  5. When smb2 leases is disable, ksmbd can send oplock break notification
  6. and cause wait oplock break ack timeout. It may appear like hang when
  7. accessing a directory. This patch make only v2 leases handle the
  8. directory.
  9. Cc: [email protected]
  10. Signed-off-by: Namjae Jeon <[email protected]>
  11. Signed-off-by: Steve French <[email protected]>
  12. ---
  13. fs/ksmbd/oplock.c | 6 ++++++
  14. 1 file changed, 6 insertions(+)
  15. --- a/fs/ksmbd/oplock.c
  16. +++ b/fs/ksmbd/oplock.c
  17. @@ -1191,6 +1191,12 @@ int smb_grant_oplock(struct ksmbd_work *
  18. bool prev_op_has_lease;
  19. __le32 prev_op_state = 0;
  20. + /* Only v2 leases handle the directory */
  21. + if (S_ISDIR(file_inode(fp->filp)->i_mode)) {
  22. + if (!lctx || lctx->version != 2)
  23. + return 0;
  24. + }
  25. +
  26. opinfo = alloc_opinfo(work, pid, tid);
  27. if (!opinfo)
  28. return -ENOMEM;