aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/file.c
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2011-02-22 20:17:19 -0500
committerSteve French <sfrench@us.ibm.com>2011-04-11 20:40:43 -0400
commitbdf1b03e093bdbc571f404e751c7b0e2dca412ea (patch)
tree59034d81cfd01c14c21256229a355a06310ce6b5 /fs/cifs/file.c
parent7797069305d13252fd66cf722aa8f2cbeb3c95cd (diff)
cifs: replace /proc/fs/cifs/Experimental with a module parm
This flag currently only affects whether we allow "zero-copy" writes with signing enabled. Typically we map pages in the pagecache directly into the write request. If signing is enabled however and the contents of the page change after the signature is calculated but before the write is sent then the signature will be wrong. Servers typically respond to this by closing down the socket. Still, this can provide a performance benefit so the "Experimental" flag was overloaded to allow this. That's really not a good place for this option however since it's not clear what that flag does. Move that flag instead to a new module parameter that better describes its purpose. That's also better since it can be set at module insertion time by configuring modprobe.d. Reviewed-by: Suresh Jayaraman <sjayaraman@suse.de> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/file.c')
-rw-r--r--fs/cifs/file.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 5ae061c4ca25..e2d7b6bada6f 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -981,7 +981,7 @@ static ssize_t cifs_write(struct cifsFileInfo *open_file,
981 if (rc != 0) 981 if (rc != 0)
982 break; 982 break;
983 } 983 }
984 if (experimEnabled || (pTcon->ses->server && 984 if (sign_zero_copy || (pTcon->ses->server &&
985 ((pTcon->ses->server->secMode & 985 ((pTcon->ses->server->secMode &
986 (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED)) 986 (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED))
987 == 0))) { 987 == 0))) {
@@ -1242,7 +1242,7 @@ static int cifs_writepages(struct address_space *mapping,
1242 } 1242 }
1243 1243
1244 tcon = tlink_tcon(open_file->tlink); 1244 tcon = tlink_tcon(open_file->tlink);
1245 if (!experimEnabled && tcon->ses->server->secMode & 1245 if (!sign_zero_copy && tcon->ses->server->secMode &
1246 (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED)) { 1246 (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED)) {
1247 cifsFileInfo_put(open_file); 1247 cifsFileInfo_put(open_file);
1248 kfree(iov); 1248 kfree(iov);