mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
smb: move create_durable_handle_reconnect_v2 to common/smb2pdu.h
Modify the following places:
- some fields in "struct create_durable_reconn_v2_req" ->
struct durable_reconnect_context_v2
- create_durable_reconn_v2_req -> create_durable_handle_reconnect_v2
Then move duplicate definitions to common header file.
Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
committed by
Steve French
parent
833a75fc9e
commit
81a45de432
@@ -138,29 +138,12 @@ struct share_redirect_error_context_rsp {
|
||||
/* Flags */
|
||||
#define SMB2_DHANDLE_FLAG_PERSISTENT 0x00000002
|
||||
|
||||
/* See MS-SMB2 2.2.13.2.12 */
|
||||
struct durable_reconnect_context_v2 {
|
||||
struct {
|
||||
__u64 PersistentFileId;
|
||||
__u64 VolatileFileId;
|
||||
} Fid;
|
||||
__u8 CreateGuid[16];
|
||||
__le32 Flags; /* see above DHANDLE_FLAG_PERSISTENT */
|
||||
} __packed;
|
||||
|
||||
/* See MS-SMB2 2.2.14.2.12 */
|
||||
struct durable_reconnect_context_v2_rsp {
|
||||
__le32 Timeout;
|
||||
__le32 Flags; /* see above DHANDLE_FLAG_PERSISTENT */
|
||||
} __packed;
|
||||
|
||||
struct create_durable_handle_reconnect_v2 {
|
||||
struct create_context_hdr ccontext;
|
||||
__u8 Name[8];
|
||||
struct durable_reconnect_context_v2 dcontext;
|
||||
__u8 Pad[4];
|
||||
} __packed;
|
||||
|
||||
/* See MS-SMB2 2.2.13.2.5 */
|
||||
struct crt_twarp_ctxt {
|
||||
struct create_context_hdr ccontext;
|
||||
|
||||
@@ -1304,6 +1304,22 @@ struct create_durable_req_v2 {
|
||||
struct durable_context_v2_req dcontext;
|
||||
} __packed;
|
||||
|
||||
/* See MS-SMB2 2.2.13.2.12 */
|
||||
struct durable_reconnect_context_v2 {
|
||||
struct {
|
||||
__u64 PersistentFileId;
|
||||
__u64 VolatileFileId;
|
||||
} Fid;
|
||||
__u8 CreateGuid[16];
|
||||
__le32 Flags; /* see SMB2_DHANDLE_FLAG_PERSISTENT */
|
||||
} __packed;
|
||||
|
||||
struct create_durable_handle_reconnect_v2 {
|
||||
struct create_context_hdr ccontext;
|
||||
__u8 Name[8];
|
||||
struct durable_reconnect_context_v2 dcontext;
|
||||
} __packed;
|
||||
|
||||
/* See MS-SMB2 2.2.14.2.5 */
|
||||
struct create_mxac_rsp {
|
||||
struct create_context_hdr ccontext;
|
||||
|
||||
@@ -2716,7 +2716,7 @@ static int parse_durable_handle_context(struct ksmbd_work *work,
|
||||
switch (dh_idx) {
|
||||
case DURABLE_RECONN_V2:
|
||||
{
|
||||
struct create_durable_reconn_v2_req *recon_v2;
|
||||
struct create_durable_handle_reconnect_v2 *recon_v2;
|
||||
|
||||
if (dh_info->type == DURABLE_RECONN ||
|
||||
dh_info->type == DURABLE_REQ_V2) {
|
||||
@@ -2726,13 +2726,13 @@ static int parse_durable_handle_context(struct ksmbd_work *work,
|
||||
|
||||
if (le16_to_cpu(context->DataOffset) +
|
||||
le32_to_cpu(context->DataLength) <
|
||||
sizeof(struct create_durable_reconn_v2_req)) {
|
||||
sizeof(struct create_durable_handle_reconnect_v2)) {
|
||||
err = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
recon_v2 = (struct create_durable_reconn_v2_req *)context;
|
||||
persistent_id = recon_v2->Fid.PersistentFileId;
|
||||
recon_v2 = (struct create_durable_handle_reconnect_v2 *)context;
|
||||
persistent_id = recon_v2->dcontext.Fid.PersistentFileId;
|
||||
dh_info->fp = ksmbd_lookup_durable_fd(persistent_id);
|
||||
if (!dh_info->fp) {
|
||||
ksmbd_debug(SMB, "Failed to get durable handle state\n");
|
||||
@@ -2740,7 +2740,7 @@ static int parse_durable_handle_context(struct ksmbd_work *work,
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (memcmp(dh_info->fp->create_guid, recon_v2->CreateGuid,
|
||||
if (memcmp(dh_info->fp->create_guid, recon_v2->dcontext.CreateGuid,
|
||||
SMB2_CREATE_GUID_SIZE)) {
|
||||
err = -EBADF;
|
||||
ksmbd_put_durable_fd(dh_info->fp);
|
||||
|
||||
@@ -80,17 +80,6 @@ struct create_durable_reconn_req {
|
||||
} Data;
|
||||
} __packed;
|
||||
|
||||
struct create_durable_reconn_v2_req {
|
||||
struct create_context_hdr ccontext;
|
||||
__u8 Name[8];
|
||||
struct {
|
||||
__u64 PersistentFileId;
|
||||
__u64 VolatileFileId;
|
||||
} Fid;
|
||||
__u8 CreateGuid[16];
|
||||
__le32 Flags;
|
||||
} __packed;
|
||||
|
||||
struct create_alloc_size_req {
|
||||
struct create_context_hdr ccontext;
|
||||
__u8 Name[8];
|
||||
|
||||
Reference in New Issue
Block a user