aboutsummaryrefslogtreecommitdiffstats
path: root/cifs-respect-o_sync-and-o_direct-flags-during-reconnect.patch
diff options
context:
space:
mode:
Diffstat (limited to 'cifs-respect-o_sync-and-o_direct-flags-during-reconnect.patch')
-rw-r--r--cifs-respect-o_sync-and-o_direct-flags-during-reconnect.patch46
1 files changed, 0 insertions, 46 deletions
diff --git a/cifs-respect-o_sync-and-o_direct-flags-during-reconnect.patch b/cifs-respect-o_sync-and-o_direct-flags-during-reconnect.patch
deleted file mode 100644
index 315ea94..0000000
--- a/cifs-respect-o_sync-and-o_direct-flags-during-reconnect.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 44805b0e62f15e90d233485420e1847133716bdc Mon Sep 17 00:00:00 2001
-From: Pavel Shilovsky <pshilov@microsoft.com>
-Date: Tue, 12 Nov 2019 17:16:35 -0800
-Subject: CIFS: Respect O_SYNC and O_DIRECT flags during reconnect
-
-From: Pavel Shilovsky <pshilov@microsoft.com>
-
-commit 44805b0e62f15e90d233485420e1847133716bdc upstream.
-
-Currently the client translates O_SYNC and O_DIRECT flags
-into corresponding SMB create options when openning a file.
-The problem is that on reconnect when the file is being
-re-opened the client doesn't set those flags and it causes
-a server to reject re-open requests because create options
-don't match. The latter means that any subsequent system
-call against that open file fail until a share is re-mounted.
-
-Fix this by properly setting SMB create options when
-re-openning files after reconnects.
-
-Fixes: 1013e760d10e6: ("SMB3: Don't ignore O_SYNC/O_DSYNC and O_DIRECT flags")
-Cc: Stable <stable@vger.kernel.org>
-Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
-Signed-off-by: Steve French <stfrench@microsoft.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- fs/cifs/file.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
---- a/fs/cifs/file.c
-+++ b/fs/cifs/file.c
-@@ -696,6 +696,13 @@ cifs_reopen_file(struct cifsFileInfo *cf
- if (backup_cred(cifs_sb))
- create_options |= CREATE_OPEN_BACKUP_INTENT;
-
-+ /* O_SYNC also has bit for O_DSYNC so following check picks up either */
-+ if (cfile->f_flags & O_SYNC)
-+ create_options |= CREATE_WRITE_THROUGH;
-+
-+ if (cfile->f_flags & O_DIRECT)
-+ create_options |= CREATE_NO_BUFFER;
-+
- if (server->ops->get_lease_key)
- server->ops->get_lease_key(inode, &cfile->fid);
-