summaryrefslogtreecommitdiffstats
path: root/fs/cifs/smb2ops.c
diff options
context:
space:
mode:
authorPavel Shilovsky <pshilovsky@samba.org>2013-07-09 18:40:58 +0400
committerSteve French <smfrench@gmail.com>2013-07-10 13:08:40 -0500
commit9cbc0b7339b0542a1d13922d2745a2636ce44853 (patch)
treeaf06d88f00880c95d35c584338fbdebf1112843e /fs/cifs/smb2ops.c
parent064f6047a123d61dd52bb44605c999cd8ef727d9 (diff)
downloadop-kernel-dev-9cbc0b7339b0542a1d13922d2745a2636ce44853.zip
op-kernel-dev-9cbc0b7339b0542a1d13922d2745a2636ce44853.tar.gz
CIFS: Reconnect durable handles for SMB2
On reconnects, we need to reopen file and then obtain all byte-range locks held by the client. SMB2 protocol provides feature to make this process atomic by reconnecting to the same file handle with all it's byte-range locks. This patch adds this capability for SMB2 shares. Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org> Signed-off-by: Steven French <steven@steven-GA-970A-DS3.(none)>
Diffstat (limited to 'fs/cifs/smb2ops.c')
-rw-r--r--fs/cifs/smb2ops.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
index 1bc7d7e..f259e6c 100644
--- a/fs/cifs/smb2ops.c
+++ b/fs/cifs/smb2ops.c
@@ -227,6 +227,7 @@ smb2_is_path_accessible(const unsigned int xid, struct cifs_tcon *tcon,
oparms.disposition = FILE_OPEN;
oparms.create_options = 0;
oparms.fid = &fid;
+ oparms.reconnect = false;
rc = SMB2_open(xid, &oparms, utf16_path, &oplock, NULL);
if (rc) {
@@ -460,6 +461,7 @@ smb2_query_dir_first(const unsigned int xid, struct cifs_tcon *tcon,
oparms.disposition = FILE_OPEN;
oparms.create_options = 0;
oparms.fid = fid;
+ oparms.reconnect = false;
rc = SMB2_open(xid, &oparms, utf16_path, &oplock, NULL);
kfree(utf16_path);
@@ -546,6 +548,7 @@ smb2_queryfs(const unsigned int xid, struct cifs_tcon *tcon,
oparms.disposition = FILE_OPEN;
oparms.create_options = 0;
oparms.fid = &fid;
+ oparms.reconnect = false;
rc = SMB2_open(xid, &oparms, &srch_path, &oplock, NULL);
if (rc)
OpenPOWER on IntegriCloud