diff mbox series

[-next,3/3] cifs: Add helper function to check smb1+ server

Message ID 20220823125202.1156172-4-zhangxiaoxu5@huawei.com (mailing list archive)
State New, archived
Headers show
Series cifs: Use some helper function for preamble size | expand

Commit Message

Zhang Xiaoxu Aug. 23, 2022, 12:52 p.m. UTC
SMB1 server's header_preamble_size is not 0, add use is_smb1 function
to simplify the code, no actual functional changes.

Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
---
 fs/cifs/cifsencrypt.c |  3 +--
 fs/cifs/cifsglob.h    |  5 +++++
 fs/cifs/connect.c     | 10 +++++-----
 fs/cifs/transport.c   |  4 ++--
 4 files changed, 13 insertions(+), 9 deletions(-)
diff mbox series

Patch

diff --git a/fs/cifs/cifsencrypt.c b/fs/cifs/cifsencrypt.c
index 61a9fed56548..46f5718754f9 100644
--- a/fs/cifs/cifsencrypt.c
+++ b/fs/cifs/cifsencrypt.c
@@ -32,10 +32,9 @@  int __cifs_calc_signature(struct smb_rqst *rqst,
 	int rc;
 	struct kvec *iov = rqst->rq_iov;
 	int n_vec = rqst->rq_nvec;
-	bool is_smb2 = HEADER_PREAMBLE_SIZE(server) == 0;
 
 	/* iov[0] is actual data and not the rfc1002 length for SMB2+ */
-	if (is_smb2) {
+	if (!is_smb1(server)) {
 		if (iov[0].iov_len <= 4)
 			return -EIO;
 		i = 0;
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 544f69634063..45d21ebaff9f 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -751,6 +751,11 @@  struct TCP_Server_Info {
 #endif
 };
 
+static inline bool is_smb1(struct TCP_Server_Info *server)
+{
+	return HEADER_PREAMBLE_SIZE(server) != 0;
+}
+
 static inline void cifs_server_lock(struct TCP_Server_Info *server)
 {
 	unsigned int nofs_flag = memalloc_nofs_save();
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 24df04d9b0f3..7d4f8119006d 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -871,7 +871,7 @@  smb2_get_credits_from_hdr(char *buffer, struct TCP_Server_Info *server)
 	/*
 	 * SMB1 does not use credits.
 	 */
-	if (HEADER_PREAMBLE_SIZE(server))
+	if (is_smb1(server))
 		return 0;
 
 	return le16_to_cpu(shdr->CreditRequest);
@@ -1121,7 +1121,7 @@  smb2_add_credits_from_hdr(char *buffer, struct TCP_Server_Info *server)
 	/*
 	 * SMB1 does not use credits.
 	 */
-	if (HEADER_PREAMBLE_SIZE(server))
+	if (is_smb1(server))
 		return;
 
 	if (shdr->CreditRequest) {
@@ -1179,10 +1179,10 @@  cifs_demultiplex_thread(void *p)
 		if (length < 0)
 			continue;
 
-		if (HEADER_PREAMBLE_SIZE(server) == 0)
-			server->total_read = 0;
-		else
+		if (is_smb1(server))
 			server->total_read = length;
+		else
+			server->total_read = 0;
 
 		/*
 		 * The right amount was read from socket - 4 bytes,
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
index bb1052dbac5b..c2fe035e573b 100644
--- a/fs/cifs/transport.c
+++ b/fs/cifs/transport.c
@@ -261,7 +261,7 @@  smb_rqst_len(struct TCP_Server_Info *server, struct smb_rqst *rqst)
 	int nvec;
 	unsigned long buflen = 0;
 
-	if (HEADER_PREAMBLE_SIZE(server) == 0 && rqst->rq_nvec >= 2 &&
+	if (!is_smb1(server) && rqst->rq_nvec >= 2 &&
 	    rqst->rq_iov[0].iov_len == 4) {
 		iov = &rqst->rq_iov[1];
 		nvec = rqst->rq_nvec - 1;
@@ -346,7 +346,7 @@  __smb_send_rqst(struct TCP_Server_Info *server, int num_rqst,
 	sigprocmask(SIG_BLOCK, &mask, &oldmask);
 
 	/* Generate a rfc1002 marker for SMB2+ */
-	if (HEADER_PREAMBLE_SIZE(server) == 0) {
+	if (!is_smb1(server)) {
 		struct kvec hiov = {
 			.iov_base = &rfc1002_marker,
 			.iov_len  = 4