[PATCH] smb3: fix lease break problem introduced by compounding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Fixes problem (discovered by Aurelien) introduced by recent commit:
commit b24df3e30cbf48255db866720fb71f14bf9d2f39
("cifs: update receive_encrypted_standard to handle compounded responses")

which broke the ability to respond to some lease breaks
(lease breaks being ignored is a problem since can block
server response for duration of the lease break timeout).

Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx>
---
 fs/cifs/connect.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index f765b20985cd..4307d635bc5d 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -969,6 +969,9 @@ cifs_demultiplex_thread(void *p)

         server->lstrp = jiffies;

+        if ((num_mids == 0) && (server->ops->is_oplock_break))
+            server->ops->is_oplock_break(bufs[0], server);
+
         for (i = 0; i < num_mids; i++) {
             if (mids[i] != NULL) {
                 mids[i]->resp_buf_size = server->pdu_size;
-- 
2.17.1


-- 
Thanks,

Steve
From 74b3197a7431f6f9bbbbbdc193d882d3564f7e72 Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@xxxxxxxxxxxxx>
Date: Fri, 28 Sep 2018 02:11:43 -0500
Subject: [PATCH] smb3: fix lease break problem introducted by compounding

Fixes problem introduced by recent commit:
commit b24df3e30cbf48255db866720fb71f14bf9d2f39
("cifs: update receive_encrypted_standard to handle compounded responses")

which broke the ability to respond to some lease breaks
(lease breaks being ignored is a problem since can block
server response for duration of the lease break timeout).

Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx>
---
 fs/cifs/connect.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index f765b20985cd..4307d635bc5d 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -969,6 +969,9 @@ cifs_demultiplex_thread(void *p)
 
 		server->lstrp = jiffies;
 
+		if ((num_mids == 0) && (server->ops->is_oplock_break))
+			server->ops->is_oplock_break(bufs[0], server);
+
 		for (i = 0; i < num_mids; i++) {
 			if (mids[i] != NULL) {
 				mids[i]->resp_buf_size = server->pdu_size;
-- 
2.17.1


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux