aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/cifs/CHANGES6
-rw-r--r--fs/cifs/README19
-rw-r--r--fs/cifs/connect.c4
3 files changed, 27 insertions, 2 deletions
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES
index de63a0e3f4ce..be3a57509e60 100644
--- a/fs/cifs/CHANGES
+++ b/fs/cifs/CHANGES
@@ -11,7 +11,11 @@ cifs_close. Add mount option for remapping reserved characters in
11filenames (also allow recognizing files with created by SFU which have any 11filenames (also allow recognizing files with created by SFU which have any
12of these seven reserved characters, except backslash, to be recognized). 12of these seven reserved characters, except backslash, to be recognized).
13Fix invalid transact2 message (we were sometimes trying to interpret 13Fix invalid transact2 message (we were sometimes trying to interpret
14oplock breaks as SMB responses). 14oplock breaks as SMB responses). Add ioctl for checking that the
15current uid matches the uid of the mounter (needed by umount.cifs).
16Reduce the number of large buffer allocations in cifs response processing
17(significantly reduces memory pressure under heavy stress with multiple
18processes accessing the same server at the same time).
15 19
16Version 1.31 20Version 1.31
17------------ 21------------
diff --git a/fs/cifs/README b/fs/cifs/README
index 93900fc4adaa..48c37a6e9c3f 100644
--- a/fs/cifs/README
+++ b/fs/cifs/README
@@ -75,7 +75,7 @@ Allowing User Mounts
75==================== 75====================
76To permit users to mount and unmount over directories they own is possible 76To permit users to mount and unmount over directories they own is possible
77with the cifs vfs. A way to enable such mounting is to mark the mount.cifs 77with the cifs vfs. A way to enable such mounting is to mark the mount.cifs
78utility as suid (e.g. "chmod +s /sbin/mount/cifs). To enable users to 78utility as suid (e.g. "chmod +s /sbin/mount.cifs). To enable users to
79umount shares they mount requires 79umount shares they mount requires
801) mount.cifs version 1.4 or later 801) mount.cifs version 1.4 or later
812) an entry for the share in /etc/fstab indicating that a user may 812) an entry for the share in /etc/fstab indicating that a user may
@@ -97,6 +97,23 @@ mount.cifs with the following flag:
97There is a corresponding manual page for cifs mounting in the Samba 3.0 and 97There is a corresponding manual page for cifs mounting in the Samba 3.0 and
98later source tree in docs/manpages/mount.cifs.8 98later source tree in docs/manpages/mount.cifs.8
99 99
100Allowing User Unmounts
101======================
102To permit users to ummount directories that they have user mounted (see above),
103the utility umount.cifs may be used. It may be invoked directly, or if
104umount.cifs is placed in /sbin, umount -i can invoke the cifs umount helper
105(at least for most versions of the umount utility) for umount of cifs
106mounts. As with mount.cifs, to enable user unmounts umount.cifs must be marked
107as suid (e.g. "chmod +s /sbin/umount.cifs"). For this utility to succeed
108the target path must be a cifs mount, and the uid of the current user must
109match the uid of the user who mounted the resource.
110
111Also note that the customary way of allowing user mounts and unmounts is
112(instead of using mount.cifs and unmount.cifs as suid) to add a line
113to the file /etc/fstab for each //server/share you wish to mount, but
114this can become unwieldy when potential mount targets include many
115or unpredictable UNC names.
116
100Samba Considerations 117Samba Considerations
101==================== 118====================
102To get the maximum benefit from the CIFS VFS, we recommend using a server that 119To get the maximum benefit from the CIFS VFS, we recommend using a server that
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 390f22fa3439..c999583d11b0 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -396,6 +396,10 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server)
396 smb_buffer; 396 smb_buffer;
397 mid_entry->midState = 397 mid_entry->midState =
398 MID_RESPONSE_RECEIVED; 398 MID_RESPONSE_RECEIVED;
399 if(isLargeBuf)
400 mid_entry->largeBuf = 1;
401 else
402 mid_entry->largeBuf = 0;
399 } 403 }
400 } 404 }
401 spin_unlock(&GlobalMid_Lock); 405 spin_unlock(&GlobalMid_Lock);