summaryrefslogtreecommitdiff
path: root/fs/smb/server/server.c
diff options
context:
space:
mode:
authorNamjae Jeon <linkinjeon@kernel.org>2023-08-29 23:39:31 +0900
committerSteve French <stfrench@microsoft.com>2023-08-29 12:30:19 -0500
commite2b76ab8b5c9327ab2dae6da05d0752eb2f4771d (patch)
tree1764248441cf770e0202eb50c187dcfbbc2303f7 /fs/smb/server/server.c
parent084ba46fc41c21ba827fd92e61f78def7a6e52ea (diff)
downloadlinux-next-e2b76ab8b5c9327ab2dae6da05d0752eb2f4771d.tar.gz
linux-next-e2b76ab8b5c9327ab2dae6da05d0752eb2f4771d.zip
ksmbd: add support for read compound
MacOS sends a compound request including read to the server (e.g. open-read-close). So far, ksmbd has not handled read as a compound request. For compatibility between ksmbd and an OS that supports SMB, This patch provides compound support for read requests. Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/smb/server/server.c')
-rw-r--r--fs/smb/server/server.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/smb/server/server.c b/fs/smb/server/server.c
index 9df121bdf349..801cd0929209 100644
--- a/fs/smb/server/server.c
+++ b/fs/smb/server/server.c
@@ -163,6 +163,7 @@ static void __handle_ksmbd_work(struct ksmbd_work *work,
{
u16 command = 0;
int rc;
+ bool is_chained = false;
if (conn->ops->allocate_rsp_buf(work))
return;
@@ -229,14 +230,13 @@ static void __handle_ksmbd_work(struct ksmbd_work *work,
}
}
+ is_chained = is_chained_smb2_message(work);
+
if (work->sess &&
(work->sess->sign || smb3_11_final_sess_setup_resp(work) ||
conn->ops->is_sign_req(work, command)))
conn->ops->set_sign_rsp(work);
- } while (is_chained_smb2_message(work));
-
- if (work->send_no_response)
- return;
+ } while (is_chained == true);
send:
smb3_preauth_hash_rsp(work);