diff options
-rw-r--r-- | fs/cifs/CHANGES | 6 | ||||
-rw-r--r-- | fs/cifs/README | 19 | ||||
-rw-r--r-- | fs/cifs/connect.c | 4 |
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 | |||
11 | filenames (also allow recognizing files with created by SFU which have any | 11 | filenames (also allow recognizing files with created by SFU which have any |
12 | of these seven reserved characters, except backslash, to be recognized). | 12 | of these seven reserved characters, except backslash, to be recognized). |
13 | Fix invalid transact2 message (we were sometimes trying to interpret | 13 | Fix invalid transact2 message (we were sometimes trying to interpret |
14 | oplock breaks as SMB responses). | 14 | oplock breaks as SMB responses). Add ioctl for checking that the |
15 | current uid matches the uid of the mounter (needed by umount.cifs). | ||
16 | Reduce the number of large buffer allocations in cifs response processing | ||
17 | (significantly reduces memory pressure under heavy stress with multiple | ||
18 | processes accessing the same server at the same time). | ||
15 | 19 | ||
16 | Version 1.31 | 20 | Version 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 | ==================== |
76 | To permit users to mount and unmount over directories they own is possible | 76 | To permit users to mount and unmount over directories they own is possible |
77 | with the cifs vfs. A way to enable such mounting is to mark the mount.cifs | 77 | with the cifs vfs. A way to enable such mounting is to mark the mount.cifs |
78 | utility as suid (e.g. "chmod +s /sbin/mount/cifs). To enable users to | 78 | utility as suid (e.g. "chmod +s /sbin/mount.cifs). To enable users to |
79 | umount shares they mount requires | 79 | umount shares they mount requires |
80 | 1) mount.cifs version 1.4 or later | 80 | 1) mount.cifs version 1.4 or later |
81 | 2) an entry for the share in /etc/fstab indicating that a user may | 81 | 2) an entry for the share in /etc/fstab indicating that a user may |
@@ -97,6 +97,23 @@ mount.cifs with the following flag: | |||
97 | There is a corresponding manual page for cifs mounting in the Samba 3.0 and | 97 | There is a corresponding manual page for cifs mounting in the Samba 3.0 and |
98 | later source tree in docs/manpages/mount.cifs.8 | 98 | later source tree in docs/manpages/mount.cifs.8 |
99 | 99 | ||
100 | Allowing User Unmounts | ||
101 | ====================== | ||
102 | To permit users to ummount directories that they have user mounted (see above), | ||
103 | the utility umount.cifs may be used. It may be invoked directly, or if | ||
104 | umount.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 | ||
106 | mounts. As with mount.cifs, to enable user unmounts umount.cifs must be marked | ||
107 | as suid (e.g. "chmod +s /sbin/umount.cifs"). For this utility to succeed | ||
108 | the target path must be a cifs mount, and the uid of the current user must | ||
109 | match the uid of the user who mounted the resource. | ||
110 | |||
111 | Also 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 | ||
113 | to the file /etc/fstab for each //server/share you wish to mount, but | ||
114 | this can become unwieldy when potential mount targets include many | ||
115 | or unpredictable UNC names. | ||
116 | |||
100 | Samba Considerations | 117 | Samba Considerations |
101 | ==================== | 118 | ==================== |
102 | To get the maximum benefit from the CIFS VFS, we recommend using a server that | 119 | To 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); |