Commit 2734b692 authored by Namjae Jeon's avatar Namjae Jeon Committed by Steve French
Browse files

ksmbd: change LeaseKey data type to u8 array



cifs define LeaseKey as u8 array in structure. To move lease structure
to smbfs_common, ksmbd change LeaseKey data type to u8 array.

Signed-off-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent 2dd9129f
Loading
Loading
Loading
Loading
+9 −15
Original line number Diff line number Diff line
@@ -1335,19 +1335,16 @@ __u8 smb2_map_lease_to_oplock(__le32 lease_state)
 */
void create_lease_buf(u8 *rbuf, struct lease *lease)
{
	char *LeaseKey = (char *)&lease->lease_key;

	if (lease->version == 2) {
		struct create_lease_v2 *buf = (struct create_lease_v2 *)rbuf;
		char *ParentLeaseKey = (char *)&lease->parent_lease_key;

		memset(buf, 0, sizeof(struct create_lease_v2));
		buf->lcontext.LeaseKeyLow = *((__le64 *)LeaseKey);
		buf->lcontext.LeaseKeyHigh = *((__le64 *)(LeaseKey + 8));
		memcpy(buf->lcontext.LeaseKey, lease->lease_key,
		       SMB2_LEASE_KEY_SIZE);
		buf->lcontext.LeaseFlags = lease->flags;
		buf->lcontext.LeaseState = lease->state;
		buf->lcontext.ParentLeaseKeyLow = *((__le64 *)ParentLeaseKey);
		buf->lcontext.ParentLeaseKeyHigh = *((__le64 *)(ParentLeaseKey + 8));
		memcpy(buf->lcontext.ParentLeaseKey, lease->parent_lease_key,
		       SMB2_LEASE_KEY_SIZE);
		buf->ccontext.DataOffset = cpu_to_le16(offsetof
				(struct create_lease_v2, lcontext));
		buf->ccontext.DataLength = cpu_to_le32(sizeof(struct lease_context_v2));
@@ -1362,8 +1359,7 @@ void create_lease_buf(u8 *rbuf, struct lease *lease)
		struct create_lease *buf = (struct create_lease *)rbuf;

		memset(buf, 0, sizeof(struct create_lease));
		buf->lcontext.LeaseKeyLow = *((__le64 *)LeaseKey);
		buf->lcontext.LeaseKeyHigh = *((__le64 *)(LeaseKey + 8));
		memcpy(buf->lcontext.LeaseKey, lease->lease_key, SMB2_LEASE_KEY_SIZE);
		buf->lcontext.LeaseFlags = lease->flags;
		buf->lcontext.LeaseState = lease->state;
		buf->ccontext.DataOffset = cpu_to_le16(offsetof
@@ -1416,19 +1412,17 @@ struct lease_ctx_info *parse_lease_state(void *open_req)
		if (sizeof(struct lease_context_v2) == le32_to_cpu(cc->DataLength)) {
			struct create_lease_v2 *lc = (struct create_lease_v2 *)cc;

			*((__le64 *)lreq->lease_key) = lc->lcontext.LeaseKeyLow;
			*((__le64 *)(lreq->lease_key + 8)) = lc->lcontext.LeaseKeyHigh;
			memcpy(lreq->lease_key, lc->lcontext.LeaseKey, SMB2_LEASE_KEY_SIZE);
			lreq->req_state = lc->lcontext.LeaseState;
			lreq->flags = lc->lcontext.LeaseFlags;
			lreq->duration = lc->lcontext.LeaseDuration;
			*((__le64 *)lreq->parent_lease_key) = lc->lcontext.ParentLeaseKeyLow;
			*((__le64 *)(lreq->parent_lease_key + 8)) = lc->lcontext.ParentLeaseKeyHigh;
			memcpy(lreq->parent_lease_key, lc->lcontext.ParentLeaseKey,
			       SMB2_LEASE_KEY_SIZE);
			lreq->version = 2;
		} else {
			struct create_lease *lc = (struct create_lease *)cc;

			*((__le64 *)lreq->lease_key) = lc->lcontext.LeaseKeyLow;
			*((__le64 *)(lreq->lease_key + 8)) = lc->lcontext.LeaseKeyHigh;
			memcpy(lreq->lease_key, lc->lcontext.LeaseKey, SMB2_LEASE_KEY_SIZE);
			lreq->req_state = lc->lcontext.LeaseState;
			lreq->flags = lc->lcontext.LeaseFlags;
			lreq->duration = lc->lcontext.LeaseDuration;
+0 −2
Original line number Diff line number Diff line
@@ -28,8 +28,6 @@
#define OPLOCK_WRITE_TO_NONE		0x04
#define OPLOCK_READ_TO_NONE		0x08

#define SMB2_LEASE_KEY_SIZE		16

struct lease_ctx_info {
	__u8			lease_key[SMB2_LEASE_KEY_SIZE];
	__le32			req_state;
+5 −6
Original line number Diff line number Diff line
@@ -733,22 +733,21 @@ struct create_posix_rsp {

#define SMB2_LEASE_FLAG_BREAK_IN_PROGRESS_LE	cpu_to_le32(0x02)

#define SMB2_LEASE_KEY_SIZE			16

struct lease_context {
	__le64 LeaseKeyLow;
	__le64 LeaseKeyHigh;
	__u8 LeaseKey[SMB2_LEASE_KEY_SIZE];
	__le32 LeaseState;
	__le32 LeaseFlags;
	__le64 LeaseDuration;
} __packed;

struct lease_context_v2 {
	__le64 LeaseKeyLow;
	__le64 LeaseKeyHigh;
	__u8 LeaseKey[SMB2_LEASE_KEY_SIZE];
	__le32 LeaseState;
	__le32 LeaseFlags;
	__le64 LeaseDuration;
	__le64 ParentLeaseKeyLow;
	__le64 ParentLeaseKeyHigh;
	__u8 ParentLeaseKey[SMB2_LEASE_KEY_SIZE];
	__le16 Epoch;
	__le16 Reserved;
} __packed;