diff options
| author | Namjae Jeon <linkinjeon@kernel.org> | 2023-08-29 23:39:31 +0900 |
|---|---|---|
| committer | Steve French <stfrench@microsoft.com> | 2023-08-29 12:30:19 -0500 |
| commit | e2b76ab8b5c9327ab2dae6da05d0752eb2f4771d (patch) | |
| tree | 1764248441cf770e0202eb50c187dcfbbc2303f7 /fs/smb/server/server.c | |
| parent | 084ba46fc41c21ba827fd92e61f78def7a6e52ea (diff) | |
| download | linux-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.c | 8 |
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); |
