Commit 9c98f5ee authored by ZhangGuoDong's avatar ZhangGuoDong Committed by Steve French
Browse files

smb: move resume_key_ioctl_rsp to common/smb2pdu.h



Rename 2 places:

  - resume_key_req -> resume_key_ioctl_rsp
  - server: ResumeKey -> ResumeKeyU64

Merge the struct members of the server and the client, then move duplicate
definitions to common header file.

Co-developed-by: default avatarChenXiaoSong <chenxiaosong@kylinos.cn>
Signed-off-by: default avatarChenXiaoSong <chenxiaosong@kylinos.cn>
Signed-off-by: default avatarZhangGuoDong <zhangguodong@kylinos.cn>
Acked-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent cc26f593
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1528,7 +1528,7 @@ SMB2_request_res_key(const unsigned int xid, struct cifs_tcon *tcon,
{
	int rc;
	unsigned int ret_data_len;
	struct resume_key_req *res_key;
	struct resume_key_ioctl_rsp *res_key;

	rc = SMB2_ioctl(xid, tcon, persistent_fid, volatile_fid,
			FSCTL_SRV_REQUEST_RESUME_KEY, NULL, 0 /* no input */,
@@ -1541,7 +1541,7 @@ SMB2_request_res_key(const unsigned int xid, struct cifs_tcon *tcon,
		cifs_tcon_dbg(VFS, "refcpy ioctl error %d getting resume key\n", rc);
		goto req_res_key_exit;
	}
	if (ret_data_len < sizeof(struct resume_key_req)) {
	if (ret_data_len < sizeof(struct resume_key_ioctl_rsp)) {
		cifs_tcon_dbg(VFS, "Invalid refcopy resume key length\n");
		rc = -EINVAL;
		goto req_res_key_exit;
+0 −6
Original line number Diff line number Diff line
@@ -193,12 +193,6 @@ struct crt_sd_ctxt {
	struct smb3_sd sd;
} __packed;

struct resume_key_req {
	char ResumeKey[COPY_CHUNK_RES_KEY_SIZE];
	__le32	ContextLength;	/* MBZ */
	char	Context[];	/* ignored, Windows sets to 4 bytes of zero */
} __packed;

/* See MS-FSCC 2.3.29 and 2.3.30 */
struct get_retrieval_pointer_count_req {
	__le64 StartingVcn; /* virtual cluster number (signed) */
+10 −0
Original line number Diff line number Diff line
@@ -1417,6 +1417,16 @@ struct copychunk_ioctl_rsp {
	__le32 TotalBytesWritten;
} __packed;

/* See MS-SMB2 2.2.32.3 */
struct resume_key_ioctl_rsp {
	union {
		char ResumeKey[COPY_CHUNK_RES_KEY_SIZE];
		__u64 ResumeKeyU64[3];
	};
	__le32	ContextLength;	/* MBZ */
	char	Context[];	/* ignored, Windows sets to 4 bytes of zero */
} __packed;

struct smb2_ioctl_rsp {
	struct smb2_hdr hdr;
	__le16 StructureSize; /* Must be 49 */
+2 −2
Original line number Diff line number Diff line
@@ -8112,8 +8112,8 @@ static int fsctl_request_resume_key(struct ksmbd_work *work,
		return -ENOENT;

	memset(key_rsp, 0, sizeof(*key_rsp));
	key_rsp->ResumeKey[0] = req->VolatileFileId;
	key_rsp->ResumeKey[1] = req->PersistentFileId;
	key_rsp->ResumeKeyU64[0] = req->VolatileFileId;
	key_rsp->ResumeKeyU64[1] = req->PersistentFileId;
	ksmbd_fd_put(work, fp);

	return 0;
+0 −6
Original line number Diff line number Diff line
@@ -168,12 +168,6 @@ struct file_object_buf_type1_ioctl_rsp {
	__u8 DomainId[16];
} __packed;

struct resume_key_ioctl_rsp {
	__u64 ResumeKey[3];
	__le32 ContextLength;
	__u8 Context[4]; /* ignored, Windows sets to 4 bytes of zero */
} __packed;

struct file_sparse {
	__u8	SetSparse;
} __packed;