diff options
author | Jeff Layton <jlayton@redhat.com> | 2013-09-05 08:38:11 -0400 |
---|---|---|
committer | Steve French <smfrench@gmail.com> | 2013-09-08 15:24:10 -0400 |
commit | 30706a545417af50f07b8e47cc2189a2e20a4636 (patch) | |
tree | 1dc52316aaa356ba728ec0b612799c314fb9d410 /fs/cifs | |
parent | 73e216a8a42c0ef3d08071705c946c38fdbe12b0 (diff) |
cifs: create a new Documentation/ directory and move docfiles into it
Currently, we have a number of documentation files that live under
fs/cifs/. Generally, these don't get picked up by distro packagers,
since they're in a non-standard location. Move them to a new spot
under Documentation/ instead.
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs')
-rw-r--r-- | fs/cifs/AUTHORS | 55 | ||||
-rw-r--r-- | fs/cifs/CHANGES | 1065 | ||||
-rw-r--r-- | fs/cifs/README | 753 | ||||
-rw-r--r-- | fs/cifs/TODO | 129 |
4 files changed, 0 insertions, 2002 deletions
diff --git a/fs/cifs/AUTHORS b/fs/cifs/AUTHORS deleted file mode 100644 index ea940b1db77b..000000000000 --- a/fs/cifs/AUTHORS +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | Original Author | ||
2 | =============== | ||
3 | Steve French (sfrench@samba.org) | ||
4 | |||
5 | The author wishes to express his appreciation and thanks to: | ||
6 | Andrew Tridgell (Samba team) for his early suggestions about smb/cifs VFS | ||
7 | improvements. Thanks to IBM for allowing me time and test resources to pursue | ||
8 | this project, to Jim McDonough from IBM (and the Samba Team) for his help, to | ||
9 | the IBM Linux JFS team for explaining many esoteric Linux filesystem features. | ||
10 | Jeremy Allison of the Samba team has done invaluable work in adding the server | ||
11 | side of the original CIFS Unix extensions and reviewing and implementing | ||
12 | portions of the newer CIFS POSIX extensions into the Samba 3 file server. Thank | ||
13 | Dave Boutcher of IBM Rochester (author of the OS/400 smb/cifs filesystem client) | ||
14 | for proving years ago that very good smb/cifs clients could be done on Unix-like | ||
15 | operating systems. Volker Lendecke, Andrew Tridgell, Urban Widmark, John | ||
16 | Newbigin and others for their work on the Linux smbfs module. Thanks to | ||
17 | the other members of the Storage Network Industry Association CIFS Technical | ||
18 | Workgroup for their work specifying this highly complex protocol and finally | ||
19 | thanks to the Samba team for their technical advice and encouragement. | ||
20 | |||
21 | Patch Contributors | ||
22 | ------------------ | ||
23 | Zwane Mwaikambo | ||
24 | Andi Kleen | ||
25 | Amrut Joshi | ||
26 | Shobhit Dayal | ||
27 | Sergey Vlasov | ||
28 | Richard Hughes | ||
29 | Yury Umanets | ||
30 | Mark Hamzy (for some of the early cifs IPv6 work) | ||
31 | Domen Puncer | ||
32 | Jesper Juhl (in particular for lots of whitespace/formatting cleanup) | ||
33 | Vince Negri and Dave Stahl (for finding an important caching bug) | ||
34 | Adrian Bunk (kcalloc cleanups) | ||
35 | Miklos Szeredi | ||
36 | Kazeon team for various fixes especially for 2.4 version. | ||
37 | Asser Ferno (Change Notify support) | ||
38 | Shaggy (Dave Kleikamp) for innumerable small fs suggestions and some good cleanup | ||
39 | Gunter Kukkukk (testing and suggestions for support of old servers) | ||
40 | Igor Mammedov (DFS support) | ||
41 | Jeff Layton (many, many fixes, as well as great work on the cifs Kerberos code) | ||
42 | |||
43 | Test case and Bug Report contributors | ||
44 | ------------------------------------- | ||
45 | Thanks to those in the community who have submitted detailed bug reports | ||
46 | and debug of problems they have found: Jochen Dolze, David Blaine, | ||
47 | Rene Scharfe, Martin Josefsson, Alexander Wild, Anthony Liguori, | ||
48 | Lars Muller, Urban Widmark, Massimiliano Ferrero, Howard Owen, | ||
49 | Olaf Kirch, Kieron Briggs, Nick Millington and others. Also special | ||
50 | mention to the Stanford Checker (SWAT) which pointed out many minor | ||
51 | bugs in error paths. Valuable suggestions also have come from Al Viro | ||
52 | and Dave Miller. | ||
53 | |||
54 | And thanks to the IBM LTC and Power test teams and SuSE testers for | ||
55 | finding multiple bugs during excellent stress test runs. | ||
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES deleted file mode 100644 index bc0025cdd1c9..000000000000 --- a/fs/cifs/CHANGES +++ /dev/null | |||
@@ -1,1065 +0,0 @@ | |||
1 | Version 1.62 | ||
2 | ------------ | ||
3 | Add sockopt=TCP_NODELAY mount option. EA (xattr) routines hardened | ||
4 | to more strictly handle corrupt frames. | ||
5 | |||
6 | Version 1.61 | ||
7 | ------------ | ||
8 | Fix append problem to Samba servers (files opened with O_APPEND could | ||
9 | have duplicated data). Fix oops in cifs_lookup. Workaround problem | ||
10 | mounting to OS/400 Netserve. Fix oops in cifs_get_tcp_session. | ||
11 | Disable use of server inode numbers when server only | ||
12 | partially supports them (e.g. for one server querying inode numbers on | ||
13 | FindFirst fails but QPathInfo queries works). Fix oops with dfs in | ||
14 | cifs_put_smb_ses. Fix mmap to work on directio mounts (needed | ||
15 | for OpenOffice when on forcedirectio mount e.g.) | ||
16 | |||
17 | Version 1.60 | ||
18 | ------------- | ||
19 | Fix memory leak in reconnect. Fix oops in DFS mount error path. | ||
20 | Set s_maxbytes to smaller (the max that vfs can handle) so that | ||
21 | sendfile will now work over cifs mounts again. Add noforcegid | ||
22 | and noforceuid mount parameters. Fix small mem leak when using | ||
23 | ntlmv2. Fix 2nd mount to same server but with different port to | ||
24 | be allowed (rather than reusing the 1st port) - only when the | ||
25 | user explicitly overrides the port on the 2nd mount. | ||
26 | |||
27 | Version 1.59 | ||
28 | ------------ | ||
29 | Client uses server inode numbers (which are persistent) rather than | ||
30 | client generated ones by default (mount option "serverino" turned | ||
31 | on by default if server supports it). Add forceuid and forcegid | ||
32 | mount options (so that when negotiating unix extensions specifying | ||
33 | which uid mounted does not immediately force the server's reported | ||
34 | uids to be overridden). Add support for scope mount parm. Improve | ||
35 | hard link detection to use same inode for both. Do not set | ||
36 | read-only dos attribute on directories (for chmod) since Windows | ||
37 | explorer special cases this attribute bit for directories for | ||
38 | a different purpose. | ||
39 | |||
40 | Version 1.58 | ||
41 | ------------ | ||
42 | Guard against buffer overruns in various UCS-2 to UTF-8 string conversions | ||
43 | when the UTF-8 string is composed of unusually long (more than 4 byte) converted | ||
44 | characters. Add support for mounting root of a share which redirects immediately | ||
45 | to DFS target. Convert string conversion functions from Unicode to more | ||
46 | accurately mark string length before allocating memory (which may help the | ||
47 | rare cases where a UTF-8 string is much larger than the UCS2 string that | ||
48 | we converted from). Fix endianness of the vcnum field used during | ||
49 | session setup to distinguish multiple mounts to same server from different | ||
50 | userids. Raw NTLMSSP fixed (it requires /proc/fs/cifs/experimental | ||
51 | flag to be set to 2, and mount must enable krb5 to turn on extended security). | ||
52 | Performance of file create to Samba improved (posix create on lookup | ||
53 | removes 1 of 2 network requests sent on file create) | ||
54 | |||
55 | Version 1.57 | ||
56 | ------------ | ||
57 | Improve support for multiple security contexts to the same server. We | ||
58 | used to use the same "vcnumber" for all connections which could cause | ||
59 | the server to treat subsequent connections, especially those that | ||
60 | are authenticated as guest, as reconnections, invalidating the earlier | ||
61 | user's smb session. This fix allows cifs to mount multiple times to the | ||
62 | same server with different userids without risking invalidating earlier | ||
63 | established security contexts. fsync now sends SMB Flush operation | ||
64 | to better ensure that we wait for server to write all of the data to | ||
65 | server disk (not just write it over the network). Add new mount | ||
66 | parameter to allow user to disable sending the (slow) SMB flush on | ||
67 | fsync if desired (fsync still flushes all cached write data to the server). | ||
68 | Posix file open support added (turned off after one attempt if server | ||
69 | fails to support it properly, as with Samba server versions prior to 3.3.2) | ||
70 | Fix "redzone overwritten" bug in cifs_put_tcon (CIFSTcon may allocate too | ||
71 | little memory for the "nativeFileSystem" field returned by the server | ||
72 | during mount). Endian convert inode numbers if necessary (makes it easier | ||
73 | to compare inode numbers on network files from big endian systems). | ||
74 | |||
75 | Version 1.56 | ||
76 | ------------ | ||
77 | Add "forcemandatorylock" mount option to allow user to use mandatory | ||
78 | rather than posix (advisory) byte range locks, even though server would | ||
79 | support posix byte range locks. Fix query of root inode when prefixpath | ||
80 | specified and user does not have access to query information about the | ||
81 | top of the share. Fix problem in 2.6.28 resolving DFS paths to | ||
82 | Samba servers (worked to Windows). Fix rmdir so that pending search | ||
83 | (readdir) requests do not get invalid results which include the now | ||
84 | removed directory. Fix oops in cifs_dfs_ref.c when prefixpath is not reachable | ||
85 | when using DFS. Add better file create support to servers which support | ||
86 | the CIFS POSIX protocol extensions (this adds support for new flags | ||
87 | on create, and improves semantics for write of locked ranges). | ||
88 | |||
89 | Version 1.55 | ||
90 | ------------ | ||
91 | Various fixes to make delete of open files behavior more predictable | ||
92 | (when delete of an open file fails we mark the file as "delete-on-close" | ||
93 | in a way that more servers accept, but only if we can first rename the | ||
94 | file to a temporary name). Add experimental support for more safely | ||
95 | handling fcntl(F_SETLEASE). Convert cifs to using blocking tcp | ||
96 | sends, and also let tcp autotune the socket send and receive buffers. | ||
97 | This reduces the number of EAGAIN errors returned by TCP/IP in | ||
98 | high stress workloads (and the number of retries on socket writes | ||
99 | when sending large SMBWriteX requests). Fix case in which a portion of | ||
100 | data can in some cases not get written to the file on the server before the | ||
101 | file is closed. Fix DFS parsing to properly handle path consumed field, | ||
102 | and to handle certain codepage conversions better. Fix mount and | ||
103 | umount race that can cause oops in mount or umount or reconnect. | ||
104 | |||
105 | Version 1.54 | ||
106 | ------------ | ||
107 | Fix premature write failure on congested networks (we would give up | ||
108 | on EAGAIN from the socket too quickly on large writes). | ||
109 | Cifs_mkdir and cifs_create now respect the setgid bit on parent dir. | ||
110 | Fix endian problems in acl (mode from/to cifs acl) on bigendian | ||
111 | architectures. Fix problems with preserving timestamps on copying open | ||
112 | files (e.g. "cp -a") to Windows servers. For mkdir and create honor setgid bit | ||
113 | on parent directory when server supports Unix Extensions but not POSIX | ||
114 | create. Update cifs.upcall version to handle new Kerberos sec flags | ||
115 | (this requires update of cifs.upcall program from Samba). Fix memory leak | ||
116 | on dns_upcall (resolving DFS referralls). Fix plain text password | ||
117 | authentication (requires setting SecurityFlags to 0x30030 to enable | ||
118 | lanman and plain text though). Fix writes to be at correct offset when | ||
119 | file is open with O_APPEND and file is on a directio (forcediretio) mount. | ||
120 | Fix bug in rewinding readdir directory searches. Add nodfs mount option. | ||
121 | |||
122 | Version 1.53 | ||
123 | ------------ | ||
124 | DFS support added (Microsoft Distributed File System client support needed | ||
125 | for referrals which enable a hierarchical name space among servers). | ||
126 | Disable temporary caching of mode bits to servers which do not support | ||
127 | storing of mode (e.g. Windows servers, when client mounts without cifsacl | ||
128 | mount option) and add new "dynperm" mount option to enable temporary caching | ||
129 | of mode (enable old behavior). Fix hang on mount caused when server crashes | ||
130 | tcp session during negotiate protocol. | ||
131 | |||
132 | Version 1.52 | ||
133 | ------------ | ||
134 | Fix oops on second mount to server when null auth is used. | ||
135 | Enable experimental Kerberos support. Return writebehind errors on flush | ||
136 | and sync so that events like out of disk space get reported properly on | ||
137 | cached files. Fix setxattr failure to certain Samba versions. Fix mount | ||
138 | of second share to disconnected server session (autoreconnect on this). | ||
139 | Add ability to modify cifs acls for handling chmod (when mounted with | ||
140 | cifsacl flag). Fix prefixpath path separator so we can handle mounts | ||
141 | with prefixpaths longer than one directory (one path component) when | ||
142 | mounted to Windows servers. Fix slow file open when cifsacl | ||
143 | enabled. Fix memory leak in FindNext when the SMB call returns -EBADF. | ||
144 | |||
145 | |||
146 | Version 1.51 | ||
147 | ------------ | ||
148 | Fix memory leak in statfs when mounted to very old servers (e.g. | ||
149 | Windows 9x). Add new feature "POSIX open" which allows servers | ||
150 | which support the current POSIX Extensions to provide better semantics | ||
151 | (e.g. delete for open files opened with posix open). Take into | ||
152 | account umask on posix mkdir not just older style mkdir. Add | ||
153 | ability to mount to IPC$ share (which allows CIFS named pipes to be | ||
154 | opened, read and written as if they were files). When 1st tree | ||
155 | connect fails (e.g. due to signing negotiation failure) fix | ||
156 | leak that causes cifsd not to stop and rmmod to fail to cleanup | ||
157 | cifs_request_buffers pool. Fix problem with POSIX Open/Mkdir on | ||
158 | bigendian architectures. Fix possible memory corruption when | ||
159 | EAGAIN returned on kern_recvmsg. Return better error if server | ||
160 | requires packet signing but client has disabled it. When mounted | ||
161 | with cifsacl mount option - mode bits are approximated based | ||
162 | on the contents of the ACL of the file or directory. When cifs | ||
163 | mount helper is missing convert make sure that UNC name | ||
164 | has backslash (not forward slash) between ip address of server | ||
165 | and the share name. | ||
166 | |||
167 | Version 1.50 | ||
168 | ------------ | ||
169 | Fix NTLMv2 signing. NFS server mounted over cifs works (if cifs mount is | ||
170 | done with "serverino" mount option). Add support for POSIX Unlink | ||
171 | (helps with certain sharing violation cases when server such as | ||
172 | Samba supports newer POSIX CIFS Protocol Extensions). Add "nounix" | ||
173 | mount option to allow disabling the CIFS Unix Extensions for just | ||
174 | that mount. Fix hang on spinlock in find_writable_file (race when | ||
175 | reopening file after session crash). Byte range unlock request to | ||
176 | windows server could unlock more bytes (on server copy of file) | ||
177 | than intended if start of unlock request is well before start of | ||
178 | a previous byte range lock that we issued. | ||
179 | |||
180 | Version 1.49 | ||
181 | ------------ | ||
182 | IPv6 support. Enable ipv6 addresses to be passed on mount (put the ipv6 | ||
183 | address after the "ip=" mount option, at least until mount.cifs is fixed to | ||
184 | handle DNS host to ipv6 name translation). Accept override of uid or gid | ||
185 | on mount even when Unix Extensions are negotiated (it used to be ignored | ||
186 | when Unix Extensions were ignored). This allows users to override the | ||
187 | default uid and gid for files when they are certain that the uids or | ||
188 | gids on the server do not match those of the client. Make "sec=none" | ||
189 | mount override username (so that null user connection is attempted) | ||
190 | to match what documentation said. Support for very large reads, over 127K, | ||
191 | available to some newer servers (such as Samba 3.0.26 and later but | ||
192 | note that it also requires setting CIFSMaxBufSize at module install | ||
193 | time to a larger value which may hurt performance in some cases). | ||
194 | Make sign option force signing (or fail if server does not support it). | ||
195 | |||
196 | Version 1.48 | ||
197 | ------------ | ||
198 | Fix mtime bouncing around from local idea of last write times to remote time. | ||
199 | Fix hang (in i_size_read) when simultaneous size update of same remote file | ||
200 | on smp system corrupts sequence number. Do not reread unnecessarily partial page | ||
201 | (which we are about to overwrite anyway) when writing out file opened rw. | ||
202 | When DOS attribute of file on non-Unix server's file changes on the server side | ||
203 | from read-only back to read-write, reflect this change in default file mode | ||
204 | (we had been leaving a file's mode read-only until the inode were reloaded). | ||
205 | Allow setting of attribute back to ATTR_NORMAL (removing readonly dos attribute | ||
206 | when archive dos attribute not set and we are changing mode back to writeable | ||
207 | on server which does not support the Unix Extensions). Remove read only dos | ||
208 | attribute on chmod when adding any write permission (ie on any of | ||
209 | user/group/other (not all of user/group/other ie 0222) when | ||
210 | mounted to windows. Add support for POSIX MkDir (slight performance | ||
211 | enhancement and eliminates the network race between the mkdir and set | ||
212 | path info of the mode). | ||
213 | |||
214 | |||
215 | Version 1.47 | ||
216 | ------------ | ||
217 | Fix oops in list_del during mount caused by unaligned string. | ||
218 | Fix file corruption which could occur on some large file | ||
219 | copies caused by writepages page i/o completion bug. | ||
220 | Seek to SEEK_END forces check for update of file size for non-cached | ||
221 | files. Allow file size to be updated on remote extend of locally open, | ||
222 | non-cached file. Fix reconnect to newer Samba servers (or other servers | ||
223 | which support the CIFS Unix/POSIX extensions) so that we again tell the | ||
224 | server the Unix/POSIX cifs capabilities which we support (SetFSInfo). | ||
225 | Add experimental support for new POSIX Open/Mkdir (which returns | ||
226 | stat information on the open, and allows setting the mode). | ||
227 | |||
228 | Version 1.46 | ||
229 | ------------ | ||
230 | Support deep tree mounts. Better support OS/2, Win9x (DOS) time stamps. | ||
231 | Allow null user to be specified on mount ("username="). Do not return | ||
232 | EINVAL on readdir when filldir fails due to overwritten blocksize | ||
233 | (fixes FC problem). Return error in rename 2nd attempt retry (ie report | ||
234 | if rename by handle also fails, after rename by path fails, we were | ||
235 | not reporting whether the retry worked or not). Fix NTLMv2 to | ||
236 | work to Windows servers (mount with option "sec=ntlmv2"). | ||
237 | |||
238 | Version 1.45 | ||
239 | ------------ | ||
240 | Do not time out lockw calls when using posix extensions. Do not | ||
241 | time out requests if server still responding reasonably fast | ||
242 | on requests on other threads. Improve POSIX locking emulation, | ||
243 | (lock cancel now works, and unlock of merged range works even | ||
244 | to Windows servers now). Fix oops on mount to lanman servers | ||
245 | (win9x, os/2 etc.) when null password. Do not send listxattr | ||
246 | (SMB to query all EAs) if nouser_xattr specified. Fix SE Linux | ||
247 | problem (instantiate inodes/dentries in right order for readdir). | ||
248 | |||
249 | Version 1.44 | ||
250 | ------------ | ||
251 | Rewritten sessionsetup support, including support for legacy SMB | ||
252 | session setup needed for OS/2 and older servers such as Windows 95 and 98. | ||
253 | Fix oops on ls to OS/2 servers. Add support for level 1 FindFirst | ||
254 | so we can do search (ls etc.) to OS/2. Do not send NTCreateX | ||
255 | or recent levels of FindFirst unless server says it supports NT SMBs | ||
256 | (instead use legacy equivalents from LANMAN dialect). Fix to allow | ||
257 | NTLMv2 authentication support (now can use stronger password hashing | ||
258 | on mount if corresponding /proc/fs/cifs/SecurityFlags is set (0x4004). | ||
259 | Allow override of global cifs security flags on mount via "sec=" option(s). | ||
260 | |||
261 | Version 1.43 | ||
262 | ------------ | ||
263 | POSIX locking to servers which support CIFS POSIX Extensions | ||
264 | (disabled by default controlled by proc/fs/cifs/Experimental). | ||
265 | Handle conversion of long share names (especially Asian languages) | ||
266 | to Unicode during mount. Fix memory leak in sess struct on reconnect. | ||
267 | Fix rare oops after acpi suspend. Fix O_TRUNC opens to overwrite on | ||
268 | cifs open which helps rare case when setpathinfo fails or server does | ||
269 | not support it. | ||
270 | |||
271 | Version 1.42 | ||
272 | ------------ | ||
273 | Fix slow oplock break when mounted to different servers at the same time and | ||
274 | the tids match and we try to find matching fid on wrong server. Fix read | ||
275 | looping when signing required by server (2.6.16 kernel only). Fix readdir | ||
276 | vs. rename race which could cause each to hang. Return . and .. even | ||
277 | if server does not. Allow searches to skip first three entries and | ||
278 | begin at any location. Fix oops in find_writeable_file. | ||
279 | |||
280 | Version 1.41 | ||
281 | ------------ | ||
282 | Fix NTLMv2 security (can be enabled in /proc/fs/cifs) so customers can | ||
283 | configure stronger authentication. Fix sfu symlinks so they can | ||
284 | be followed (not just recognized). Fix wraparound of bcc on | ||
285 | read responses when buffer size over 64K and also fix wrap of | ||
286 | max smb buffer size when CIFSMaxBufSize over 64K. Fix oops in | ||
287 | cifs_user_read and cifs_readpages (when EAGAIN on send of smb | ||
288 | on socket is returned over and over). Add POSIX (advisory) byte range | ||
289 | locking support (requires server with newest CIFS UNIX Extensions | ||
290 | to the protocol implemented). Slow down negprot slightly in port 139 | ||
291 | RFC1001 case to give session_init time on buggy servers. | ||
292 | |||
293 | Version 1.40 | ||
294 | ------------ | ||
295 | Use fsuid (fsgid) more consistently instead of uid (gid). Improve performance | ||
296 | of readpages by eliminating one extra memcpy. Allow update of file size | ||
297 | from remote server even if file is open for write as long as mount is | ||
298 | directio. Recognize share mode security and send NTLM encrypted password | ||
299 | on tree connect if share mode negotiated. | ||
300 | |||
301 | Version 1.39 | ||
302 | ------------ | ||
303 | Defer close of a file handle slightly if pending writes depend on that handle | ||
304 | (this reduces the EBADF bad file handle errors that can be logged under heavy | ||
305 | stress on writes). Modify cifs Kconfig options to expose CONFIG_CIFS_STATS2 | ||
306 | Fix SFU style symlinks and mknod needed for servers which do not support the | ||
307 | CIFS Unix Extensions. Fix setfacl/getfacl on bigendian. Timeout negative | ||
308 | dentries so files that the client sees as deleted but that later get created | ||
309 | on the server will be recognized. Add client side permission check on setattr. | ||
310 | Timeout stuck requests better (where server has never responded or sent corrupt | ||
311 | responses) | ||
312 | |||
313 | Version 1.38 | ||
314 | ------------ | ||
315 | Fix tcp socket retransmission timeouts (e.g. on ENOSPACE from the socket) | ||
316 | to be smaller at first (but increasing) so large write performance performance | ||
317 | over GigE is better. Do not hang thread on illegal byte range lock response | ||
318 | from Windows (Windows can send an RFC1001 size which does not match smb size) by | ||
319 | allowing an SMBs TCP length to be up to a few bytes longer than it should be. | ||
320 | wsize and rsize can now be larger than negotiated buffer size if server | ||
321 | supports large readx/writex, even when directio mount flag not specified. | ||
322 | Write size will in many cases now be 16K instead of 4K which greatly helps | ||
323 | file copy performance on lightly loaded networks. Fix oops in dnotify | ||
324 | when experimental config flag enabled. Make cifsFYI more granular. | ||
325 | |||
326 | Version 1.37 | ||
327 | ------------ | ||
328 | Fix readdir caching when unlink removes file in current search buffer, | ||
329 | and this is followed by a rewind search to just before the deleted entry. | ||
330 | Do not attempt to set ctime unless atime and/or mtime change requested | ||
331 | (most servers throw it away anyway). Fix length check of received smbs | ||
332 | to be more accurate. Fix big endian problem with mapchars mount option, | ||
333 | and with a field returned by statfs. | ||
334 | |||
335 | Version 1.36 | ||
336 | ------------ | ||
337 | Add support for mounting to older pre-CIFS servers such as Windows9x and ME. | ||
338 | For these older servers, add option for passing netbios name of server in | ||
339 | on mount (servernetbiosname). Add suspend support for power management, to | ||
340 | avoid cifsd thread preventing software suspend from working. | ||
341 | Add mount option for disabling the default behavior of sending byte range lock | ||
342 | requests to the server (necessary for certain applications which break with | ||
343 | mandatory lock behavior such as Evolution), and also mount option for | ||
344 | requesting case insensitive matching for path based requests (requesting | ||
345 | case sensitive is the default). | ||
346 | |||
347 | Version 1.35 | ||
348 | ------------ | ||
349 | Add writepage performance improvements. Fix path name conversions | ||
350 | for long filenames on mounts which were done with "mapchars" mount option | ||
351 | specified. Ensure multiplex ids do not collide. Fix case in which | ||
352 | rmmod can oops if done soon after last unmount. Fix truncated | ||
353 | search (readdir) output when resume filename was a long filename. | ||
354 | Fix filename conversion when mapchars mount option was specified and | ||
355 | filename was a long filename. | ||
356 | |||
357 | Version 1.34 | ||
358 | ------------ | ||
359 | Fix error mapping of the TOO_MANY_LINKS (hardlinks) case. | ||
360 | Do not oops if root user kills cifs oplock kernel thread or | ||
361 | kills the cifsd thread (NB: killing the cifs kernel threads is not | ||
362 | recommended, unmount and rmmod cifs will kill them when they are | ||
363 | no longer needed). Fix readdir to ASCII servers (ie older servers | ||
364 | which do not support Unicode) and also require asterisk. | ||
365 | Fix out of memory case in which data could be written one page | ||
366 | off in the page cache. | ||
367 | |||
368 | Version 1.33 | ||
369 | ------------ | ||
370 | Fix caching problem, in which readdir of directory containing a file | ||
371 | which was cached could cause the file's time stamp to be updated | ||
372 | without invalidating the readahead data (so we could get stale | ||
373 | file data on the client for that file even as the server copy changed). | ||
374 | Cleanup response processing so cifsd can not loop when abnormally | ||
375 | terminated. | ||
376 | |||
377 | |||
378 | Version 1.32 | ||
379 | ------------ | ||
380 | Fix oops in ls when Transact2 FindFirst (or FindNext) returns more than one | ||
381 | transact response for an SMB request and search entry split across two frames. | ||
382 | Add support for lsattr (getting ext2/ext3/reiserfs attr flags from the server) | ||
383 | as new protocol extensions. Do not send Get/Set calls for POSIX ACLs | ||
384 | unless server explicitly claims to support them in CIFS Unix extensions | ||
385 | POSIX ACL capability bit. Fix packet signing when multiuser mounting with | ||
386 | different users from the same client to the same server. Fix oops in | ||
387 | cifs_close. Add mount option for remapping reserved characters in | ||
388 | filenames (also allow recognizing files with created by SFU which have any | ||
389 | of these seven reserved characters, except backslash, to be recognized). | ||
390 | Fix invalid transact2 message (we were sometimes trying to interpret | ||
391 | oplock breaks as SMB responses). Add ioctl for checking that the | ||
392 | current uid matches the uid of the mounter (needed by umount.cifs). | ||
393 | Reduce the number of large buffer allocations in cifs response processing | ||
394 | (significantly reduces memory pressure under heavy stress with multiple | ||
395 | processes accessing the same server at the same time). | ||
396 | |||
397 | Version 1.31 | ||
398 | ------------ | ||
399 | Fix updates of DOS attributes and time fields so that files on NT4 servers | ||
400 | do not get marked delete on close. Display sizes of cifs buffer pools in | ||
401 | cifs stats. Fix oops in unmount when cifsd thread being killed by | ||
402 | shutdown. Add generic readv/writev and aio support. Report inode numbers | ||
403 | consistently in readdir and lookup (when serverino mount option is | ||
404 | specified use the inode number that the server reports - for both lookup | ||
405 | and readdir, otherwise by default the locally generated inode number is used | ||
406 | for inodes created in either path since servers are not always able to | ||
407 | provide unique inode numbers when exporting multiple volumes from under one | ||
408 | sharename). | ||
409 | |||
410 | Version 1.30 | ||
411 | ------------ | ||
412 | Allow new nouser_xattr mount parm to disable xattr support for user namespace. | ||
413 | Do not flag user_xattr mount parm in dmesg. Retry failures setting file time | ||
414 | (mostly affects NT4 servers) by retry with handle based network operation. | ||
415 | Add new POSIX Query FS Info for returning statfs info more accurately. | ||
416 | Handle passwords with multiple commas in them. | ||
417 | |||
418 | Version 1.29 | ||
419 | ------------ | ||
420 | Fix default mode in sysfs of cifs module parms. Remove old readdir routine. | ||
421 | Fix capabilities flags for large readx so as to allow reads larger than 64K. | ||
422 | |||
423 | Version 1.28 | ||
424 | ------------ | ||
425 | Add module init parm for large SMB buffer size (to allow it to be changed | ||
426 | from its default of 16K) which is especially useful for large file copy | ||
427 | when mounting with the directio mount option. Fix oops after | ||
428 | returning from mount when experimental ExtendedSecurity enabled and | ||
429 | SpnegoNegotiated returning invalid error. Fix case to retry better when | ||
430 | peek returns from 1 to 3 bytes on socket which should have more data. | ||
431 | Fixed path based calls (such as cifs lookup) to handle path names | ||
432 | longer than 530 (now can handle PATH_MAX). Fix pass through authentication | ||
433 | from Samba server to DC (Samba required dummy LM password). | ||
434 | |||
435 | Version 1.27 | ||
436 | ------------ | ||
437 | Turn off DNOTIFY (directory change notification support) by default | ||
438 | (unless built with the experimental flag) to fix hang with KDE | ||
439 | file browser. Fix DNOTIFY flag mappings. Fix hang (in wait_event | ||
440 | waiting on an SMB response) in SendReceive when session dies but | ||
441 | reconnects quickly from another task. Add module init parms for | ||
442 | minimum number of large and small network buffers in the buffer pools, | ||
443 | and for the maximum number of simultaneous requests. | ||
444 | |||
445 | Version 1.26 | ||
446 | ------------ | ||
447 | Add setfacl support to allow setting of ACLs remotely to Samba 3.10 and later | ||
448 | and other POSIX CIFS compliant servers. Fix error mapping for getfacl | ||
449 | to EOPNOTSUPP when server does not support posix acls on the wire. Fix | ||
450 | improperly zeroed buffer in CIFS Unix extensions set times call. | ||
451 | |||
452 | Version 1.25 | ||
453 | ------------ | ||
454 | Fix internationalization problem in cifs readdir with filenames that map to | ||
455 | longer UTF-8 strings than the string on the wire was in Unicode. Add workaround | ||
456 | for readdir to netapp servers. Fix search rewind (seek into readdir to return | ||
457 | non-consecutive entries). Do not do readdir when server negotiates | ||
458 | buffer size to small to fit filename. Add support for reading POSIX ACLs from | ||
459 | the server (add also acl and noacl mount options). | ||
460 | |||
461 | Version 1.24 | ||
462 | ------------ | ||
463 | Optionally allow using server side inode numbers, rather than client generated | ||
464 | ones by specifying mount option "serverino" - this is required for some apps | ||
465 | to work which double check hardlinked files and have persistent inode numbers. | ||
466 | |||
467 | Version 1.23 | ||
468 | ------------ | ||
469 | Multiple bigendian fixes. On little endian systems (for reconnect after | ||
470 | network failure) fix tcp session reconnect code so we do not try first | ||
471 | to reconnect on reverse of port 445. Treat reparse points (NTFS junctions) | ||
472 | as directories rather than symlinks because we can do follow link on them. | ||
473 | |||
474 | Version 1.22 | ||
475 | ------------ | ||
476 | Add config option to enable XATTR (extended attribute) support, mapping | ||
477 | xattr names in the "user." namespace space to SMB/CIFS EAs. Lots of | ||
478 | minor fixes pointed out by the Stanford SWAT checker (mostly missing | ||
479 | or out of order NULL pointer checks in little used error paths). | ||
480 | |||
481 | Version 1.21 | ||
482 | ------------ | ||
483 | Add new mount parm to control whether mode check (generic_permission) is done | ||
484 | on the client. If Unix extensions are enabled and the uids on the client | ||
485 | and server do not match, client permission checks are meaningless on | ||
486 | server uids that do not exist on the client (this does not affect the | ||
487 | normal ACL check which occurs on the server). Fix default uid | ||
488 | on mknod to match create and mkdir. Add optional mount parm to allow | ||
489 | override of the default uid behavior (in which the server sets the uid | ||
490 | and gid of newly created files). Normally for network filesystem mounts | ||
491 | user want the server to set the uid/gid on newly created files (rather than | ||
492 | using uid of the client processes you would in a local filesystem). | ||
493 | |||
494 | Version 1.20 | ||
495 | ------------ | ||
496 | Make transaction counts more consistent. Merge /proc/fs/cifs/SimultaneousOps | ||
497 | info into /proc/fs/cifs/DebugData. Fix oops in rare oops in readdir | ||
498 | (in build_wildcard_path_from_dentry). Fix mknod to pass type field | ||
499 | (block/char/fifo) properly. Remove spurious mount warning log entry when | ||
500 | credentials passed as mount argument. Set major/minor device number in | ||
501 | inode for block and char devices when unix extensions enabled. | ||
502 | |||
503 | Version 1.19 | ||
504 | ------------ | ||
505 | Fix /proc/fs/cifs/Stats and DebugData display to handle larger | ||
506 | amounts of return data. Properly limit requests to MAX_REQ (50 | ||
507 | is the usual maximum active multiplex SMB/CIFS requests per server). | ||
508 | Do not kill cifsd (and thus hurt the other SMB session) when more than one | ||
509 | session to the same server (but with different userids) exists and one | ||
510 | of the two user's smb sessions is being removed while leaving the other. | ||
511 | Do not loop reconnecting in cifsd demultiplex thread when admin | ||
512 | kills the thread without going through unmount. | ||
513 | |||
514 | Version 1.18 | ||
515 | ------------ | ||
516 | Do not rename hardlinked files (since that should be a noop). Flush | ||
517 | cached write behind data when reopening a file after session abend, | ||
518 | except when already in write. Grab per socket sem during reconnect | ||
519 | to avoid oops in sendmsg if overlapping with reconnect. Do not | ||
520 | reset cached inode file size on readdir for files open for write on | ||
521 | client. | ||
522 | |||
523 | |||
524 | Version 1.17 | ||
525 | ------------ | ||
526 | Update number of blocks in file so du command is happier (in Linux a fake | ||
527 | blocksize of 512 is required for calculating number of blocks in inode). | ||
528 | Fix prepare write of partial pages to read in data from server if possible. | ||
529 | Fix race on tcpStatus field between unmount and reconnection code, causing | ||
530 | cifsd process sometimes to hang around forever. Improve out of memory | ||
531 | checks in cifs_filldir | ||
532 | |||
533 | Version 1.16 | ||
534 | ------------ | ||
535 | Fix incorrect file size in file handle based setattr on big endian hardware. | ||
536 | Fix oops in build_path_from_dentry when out of memory. Add checks for invalid | ||
537 | and closing file structs in writepage/partialpagewrite. Add statistics | ||
538 | for each mounted share (new menuconfig option). Fix endianness problem in | ||
539 | volume information displayed in /proc/fs/cifs/DebugData (only affects | ||
540 | affects big endian architectures). Prevent renames while constructing | ||
541 | path names for open, mkdir and rmdir. | ||
542 | |||
543 | Version 1.15 | ||
544 | ------------ | ||
545 | Change to mempools for alloc smb request buffers and multiplex structs | ||
546 | to better handle low memory problems (and potential deadlocks). | ||
547 | |||
548 | Version 1.14 | ||
549 | ------------ | ||
550 | Fix incomplete listings of large directories on Samba servers when Unix | ||
551 | extensions enabled. Fix oops when smb_buffer can not be allocated. Fix | ||
552 | rename deadlock when writing out dirty pages at same time. | ||
553 | |||
554 | Version 1.13 | ||
555 | ------------ | ||
556 | Fix open of files in which O_CREATE can cause the mode to change in | ||
557 | some cases. Fix case in which retry of write overlaps file close. | ||
558 | Fix PPC64 build error. Reduce excessive stack usage in smb password | ||
559 | hashing. Fix overwrite of Linux user's view of file mode to Windows servers. | ||
560 | |||
561 | Version 1.12 | ||
562 | ------------ | ||
563 | Fixes for large file copy, signal handling, socket retry, buffer | ||
564 | allocation and low memory situations. | ||
565 | |||
566 | Version 1.11 | ||
567 | ------------ | ||
568 | Better port 139 support to Windows servers (RFC1001/RFC1002 Session_Initialize) | ||
569 | also now allowing support for specifying client netbiosname. NT4 support added. | ||
570 | |||
571 | Version 1.10 | ||
572 | ------------ | ||
573 | Fix reconnection (and certain failed mounts) to properly wake up the | ||
574 | blocked users thread so it does not seem hung (in some cases was blocked | ||
575 | until the cifs receive timeout expired). Fix spurious error logging | ||
576 | to kernel log when application with open network files killed. | ||
577 | |||
578 | Version 1.09 | ||
579 | ------------ | ||
580 | Fix /proc/fs module unload warning message (that could be logged | ||
581 | to the kernel log). Fix intermittent failure in connectathon | ||
582 | test7 (hardlink count not immediately refreshed in case in which | ||
583 | inode metadata can be incorrectly kept cached when time near zero) | ||
584 | |||
585 | Version 1.08 | ||
586 | ------------ | ||
587 | Allow file_mode and dir_mode (specified at mount time) to be enforced | ||
588 | locally (the server already enforced its own ACLs too) for servers | ||
589 | that do not report the correct mode (do not support the | ||
590 | CIFS Unix Extensions). | ||
591 | |||
592 | Version 1.07 | ||
593 | ------------ | ||
594 | Fix some small memory leaks in some unmount error paths. Fix major leak | ||
595 | of cache pages in readpages causing multiple read oriented stress | ||
596 | testcases (including fsx, and even large file copy) to fail over time. | ||
597 | |||
598 | Version 1.06 | ||
599 | ------------ | ||
600 | Send NTCreateX with ATTR_POSIX if Linux/Unix extensions negotiated with server. | ||
601 | This allows files that differ only in case and improves performance of file | ||
602 | creation and file open to such servers. Fix semaphore conflict which causes | ||
603 | slow delete of open file to Samba (which unfortunately can cause an oplock | ||
604 | break to self while vfs_unlink held i_sem) which can hang for 20 seconds. | ||
605 | |||
606 | Version 1.05 | ||
607 | ------------ | ||
608 | fixes to cifs_readpages for fsx test case | ||
609 | |||
610 | Version 1.04 | ||
611 | ------------ | ||
612 | Fix caching data integrity bug when extending file size especially when no | ||
613 | oplock on file. Fix spurious logging of valid already parsed mount options | ||
614 | that are parsed outside of the cifs vfs such as nosuid. | ||
615 | |||
616 | |||
617 | Version 1.03 | ||
618 | ------------ | ||
619 | Connect to server when port number override not specified, and tcp port | ||
620 | unitialized. Reset search to restart at correct file when kernel routine | ||
621 | filldir returns error during large directory searches (readdir). | ||
622 | |||
623 | Version 1.02 | ||
624 | ------------ | ||
625 | Fix caching problem when files opened by multiple clients in which | ||
626 | page cache could contain stale data, and write through did | ||
627 | not occur often enough while file was still open when read ahead | ||
628 | (read oplock) not allowed. Treat "sep=" when first mount option | ||
629 | as an override of comma as the default separator between mount | ||
630 | options. | ||
631 | |||
632 | Version 1.01 | ||
633 | ------------ | ||
634 | Allow passwords longer than 16 bytes. Allow null password string. | ||
635 | |||
636 | Version 1.00 | ||
637 | ------------ | ||
638 | Gracefully clean up failed mounts when attempting to mount to servers such as | ||
639 | Windows 98 that terminate tcp sessions during protocol negotiation. Handle | ||
640 | embedded commas in mount parsing of passwords. | ||
641 | |||
642 | Version 0.99 | ||
643 | ------------ | ||
644 | Invalidate local inode cached pages on oplock break and when last file | ||
645 | instance is closed so that the client does not continue using stale local | ||
646 | copy rather than later modified server copy of file. Do not reconnect | ||
647 | when server drops the tcp session prematurely before negotiate | ||
648 | protocol response. Fix oops in reopen_file when dentry freed. Allow | ||
649 | the support for CIFS Unix Extensions to be disabled via proc interface. | ||
650 | |||
651 | Version 0.98 | ||
652 | ------------ | ||
653 | Fix hang in commit_write during reconnection of open files under heavy load. | ||
654 | Fix unload_nls oops in a mount failure path. Serialize writes to same socket | ||
655 | which also fixes any possible races when cifs signatures are enabled in SMBs | ||
656 | being sent out of signature sequence number order. | ||
657 | |||
658 | Version 0.97 | ||
659 | ------------ | ||
660 | Fix byte range locking bug (endian problem) causing bad offset and | ||
661 | length. | ||
662 | |||
663 | Version 0.96 | ||
664 | ------------ | ||
665 | Fix oops (in send_sig) caused by CIFS unmount code trying to | ||
666 | wake up the demultiplex thread after it had exited. Do not log | ||
667 | error on harmless oplock release of closed handle. | ||
668 | |||
669 | Version 0.95 | ||
670 | ------------ | ||
671 | Fix unsafe global variable usage and password hash failure on gcc 3.3.1 | ||
672 | Fix problem reconnecting secondary mounts to same server after session | ||
673 | failure. Fix invalid dentry - race in mkdir when directory gets created | ||
674 | by another client between the lookup and mkdir. | ||
675 | |||
676 | Version 0.94 | ||
677 | ------------ | ||
678 | Fix to list processing in reopen_files. Fix reconnection when server hung | ||
679 | but tcpip session still alive. Set proper timeout on socket read. | ||
680 | |||
681 | Version 0.93 | ||
682 | ------------ | ||
683 | Add missing mount options including iocharset. SMP fixes in write and open. | ||
684 | Fix errors in reconnecting after TCP session failure. Fix module unloading | ||
685 | of default nls codepage | ||
686 | |||
687 | Version 0.92 | ||
688 | ------------ | ||
689 | Active smb transactions should never go negative (fix double FreeXid). Fix | ||
690 | list processing in file routines. Check return code on kmalloc in open. | ||
691 | Fix spinlock usage for SMP. | ||
692 | |||
693 | Version 0.91 | ||
694 | ------------ | ||
695 | Fix oops in reopen_files when invalid dentry. drop dentry on server rename | ||
696 | and on revalidate errors. Fix cases where pid is now tgid. Fix return code | ||
697 | on create hard link when server does not support them. | ||
698 | |||
699 | Version 0.90 | ||
700 | ------------ | ||
701 | Fix scheduling while atomic error in getting inode info on newly created file. | ||
702 | Fix truncate of existing files opened with O_CREAT but not O_TRUNC set. | ||
703 | |||
704 | Version 0.89 | ||
705 | ------------ | ||
706 | Fix oops on write to dead tcp session. Remove error log write for case when file open | ||
707 | O_CREAT but not O_EXCL | ||
708 | |||
709 | Version 0.88 | ||
710 | ------------ | ||
711 | Fix non-POSIX behavior on rename of open file and delete of open file by taking | ||
712 | advantage of trans2 SetFileInfo rename facility if available on target server. | ||
713 | Retry on ENOSPC and EAGAIN socket errors. | ||
714 | |||
715 | Version 0.87 | ||
716 | ------------ | ||
717 | Fix oops on big endian readdir. Set blksize to be even power of two (2**blkbits) to fix | ||
718 | allocation size miscalculation. After oplock token lost do not read through | ||
719 | cache. | ||
720 | |||
721 | Version 0.86 | ||
722 | ------------ | ||
723 | Fix oops on empty file readahead. Fix for file size handling for locally cached files. | ||
724 | |||
725 | Version 0.85 | ||
726 | ------------ | ||
727 | Fix oops in mkdir when server fails to return inode info. Fix oops in reopen_files | ||
728 | during auto reconnection to server after server recovered from failure. | ||
729 | |||
730 | Version 0.84 | ||
731 | ------------ | ||
732 | Finish support for Linux 2.5 open/create changes, which removes the | ||
733 | redundant NTCreate/QPathInfo/close that was sent during file create. | ||
734 | Enable oplock by default. Enable packet signing by default (needed to | ||
735 | access many recent Windows servers) | ||
736 | |||
737 | Version 0.83 | ||
738 | ------------ | ||
739 | Fix oops when mounting to long server names caused by inverted parms to kmalloc. | ||
740 | Fix MultiuserMount (/proc/fs/cifs configuration setting) so that when enabled | ||
741 | we will choose a cifs user session (smb uid) that better matches the local | ||
742 | uid if a) the mount uid does not match the current uid and b) we have another | ||
743 | session to the same server (ip address) for a different mount which | ||
744 | matches the current local uid. | ||
745 | |||
746 | Version 0.82 | ||
747 | ------------ | ||
748 | Add support for mknod of block or character devices. Fix oplock | ||
749 | code (distributed caching) to properly send response to oplock | ||
750 | break from server. | ||
751 | |||
752 | Version 0.81 | ||
753 | ------------ | ||
754 | Finish up CIFS packet digital signing for the default | ||
755 | NTLM security case. This should help Windows 2003 | ||
756 | network interoperability since it is common for | ||
757 | packet signing to be required now. Fix statfs (stat -f) | ||
758 | which recently started returning errors due to | ||
759 | invalid value (-1 instead of 0) being set in the | ||
760 | struct kstatfs f_ffiles field. | ||
761 | |||
762 | Version 0.80 | ||
763 | ----------- | ||
764 | Fix oops on stopping oplock thread when removing cifs when | ||
765 | built as module. | ||
766 | |||
767 | Version 0.79 | ||
768 | ------------ | ||
769 | Fix mount options for ro (readonly), uid, gid and file and directory mode. | ||
770 | |||
771 | Version 0.78 | ||
772 | ------------ | ||
773 | Fix errors displayed on failed mounts to be more understandable. | ||
774 | Fixed various incorrect or misleading smb to posix error code mappings. | ||
775 | |||
776 | Version 0.77 | ||
777 | ------------ | ||
778 | Fix display of NTFS DFS junctions to display as symlinks. | ||
779 | They are the network equivalent. Fix oops in | ||
780 | cifs_partialpagewrite caused by missing spinlock protection | ||
781 | of openfile linked list. Allow writebehind caching errors to | ||
782 | be returned to the application at file close. | ||
783 | |||
784 | Version 0.76 | ||
785 | ------------ | ||
786 | Clean up options displayed in /proc/mounts by show_options to | ||
787 | be more consistent with other filesystems. | ||
788 | |||
789 | Version 0.75 | ||
790 | ------------ | ||
791 | Fix delete of readonly file to Windows servers. Reflect | ||
792 | presence or absence of read only dos attribute in mode | ||
793 | bits for servers that do not support CIFS Unix extensions. | ||
794 | Fix shortened results on readdir of large directories to | ||
795 | servers supporting CIFS Unix extensions (caused by | ||
796 | incorrect resume key). | ||
797 | |||
798 | Version 0.74 | ||
799 | ------------ | ||
800 | Fix truncate bug (set file size) that could cause hangs e.g. running fsx | ||
801 | |||
802 | Version 0.73 | ||
803 | ------------ | ||
804 | unload nls if mount fails. | ||
805 | |||
806 | Version 0.72 | ||
807 | ------------ | ||
808 | Add resume key support to search (readdir) code to workaround | ||
809 | Windows bug. Add /proc/fs/cifs/LookupCacheEnable which | ||
810 | allows disabling caching of attribute information for | ||
811 | lookups. | ||
812 | |||
813 | Version 0.71 | ||
814 | ------------ | ||
815 | Add more oplock handling (distributed caching code). Remove | ||
816 | dead code. Remove excessive stack space utilization from | ||
817 | symlink routines. | ||
818 | |||
819 | Version 0.70 | ||
820 | ------------ | ||
821 | Fix oops in get dfs referral (triggered when null path sent in to | ||
822 | mount). Add support for overriding rsize at mount time. | ||
823 | |||
824 | Version 0.69 | ||
825 | ------------ | ||
826 | Fix buffer overrun in readdir which caused intermittent kernel oopses. | ||
827 | Fix writepage code to release kmap on write data. Allow "-ip=" new | ||
828 | mount option to be passed in on parameter distinct from the first part | ||
829 | (server name portion of) the UNC name. Allow override of the | ||
830 | tcp port of the target server via new mount option "-port=" | ||
831 | |||
832 | Version 0.68 | ||
833 | ------------ | ||
834 | Fix search handle leak on rewind. Fix setuid and gid so that they are | ||
835 | reflected in the local inode immediately. Cleanup of whitespace | ||
836 | to make 2.4 and 2.5 versions more consistent. | ||
837 | |||
838 | |||
839 | Version 0.67 | ||
840 | ------------ | ||
841 | Fix signal sending so that captive thread (cifsd) exits on umount | ||
842 | (which was causing the warning in kmem_cache_free of the request buffers | ||
843 | at rmmod time). This had broken as a sideeffect of the recent global | ||
844 | kernel change to daemonize. Fix memory leak in readdir code which | ||
845 | showed up in "ls -R" (and applications that did search rewinding). | ||
846 | |||
847 | Version 0.66 | ||
848 | ------------ | ||
849 | Reconnect tids and fids after session reconnection (still do not | ||
850 | reconnect byte range locks though). Fix problem caching | ||
851 | lookup information for directory inodes, improving performance, | ||
852 | especially in deep directory trees. Fix various build warnings. | ||
853 | |||
854 | Version 0.65 | ||
855 | ------------ | ||
856 | Finish fixes to commit write for caching/readahead consistency. fsx | ||
857 | now works to Samba servers. Fix oops caused when readahead | ||
858 | was interrupted by a signal. | ||
859 | |||
860 | Version 0.64 | ||
861 | ------------ | ||
862 | Fix data corruption (in partial page after truncate) that caused fsx to | ||
863 | fail to Windows servers. Cleaned up some extraneous error logging in | ||
864 | common error paths. Add generic sendfile support. | ||
865 | |||
866 | Version 0.63 | ||
867 | ------------ | ||
868 | Fix memory leak in AllocMidQEntry. | ||
869 | Finish reconnection logic, so connection with server can be dropped | ||
870 | (or server rebooted) and the cifs client will reconnect. | ||
871 | |||
872 | Version 0.62 | ||
873 | ------------ | ||
874 | Fix temporary socket leak when bad userid or password specified | ||
875 | (or other SMBSessSetup failure). Increase maximum buffer size to slightly | ||
876 | over 16K to allow negotiation of up to Samba and Windows server default read | ||
877 | sizes. Add support for readpages | ||
878 | |||
879 | Version 0.61 | ||
880 | ------------ | ||
881 | Fix oops when username not passed in on mount. Extensive fixes and improvements | ||
882 | to error logging (strip redundant newlines, change debug macros to ensure newline | ||
883 | passed in and to be more consistent). Fix writepage wrong file handle problem, | ||
884 | a readonly file handle could be incorrectly used to attempt to write out | ||
885 | file updates through the page cache to multiply open files. This could cause | ||
886 | the iozone benchmark to fail on the fwrite test. Fix bug mounting two different | ||
887 | shares to the same Windows server when using different usernames | ||
888 | (doing this to Samba servers worked but Windows was rejecting it) - now it is | ||
889 | possible to use different userids when connecting to the same server from a | ||
890 | Linux client. Fix oops when treeDisconnect called during unmount on | ||
891 | previously freed socket. | ||
892 | |||
893 | Version 0.60 | ||
894 | ------------ | ||
895 | Fix oops in readpages caused by not setting address space operations in inode in | ||
896 | rare code path. | ||
897 | |||
898 | Version 0.59 | ||
899 | ------------ | ||
900 | Includes support for deleting of open files and renaming over existing files (per POSIX | ||
901 | requirement). Add readlink support for Windows junction points (directory symlinks). | ||
902 | |||
903 | Version 0.58 | ||
904 | ------------ | ||
905 | Changed read and write to go through pagecache. Added additional address space operations. | ||
906 | Memory mapped operations now working. | ||
907 | |||
908 | Version 0.57 | ||
909 | ------------ | ||
910 | Added writepage code for additional memory mapping support. Fixed leak in xids causing | ||
911 | the simultaneous operations counter (/proc/fs/cifs/SimultaneousOps) to increase on | ||
912 | every stat call. Additional formatting cleanup. | ||
913 | |||
914 | Version 0.56 | ||
915 | ------------ | ||
916 | Fix bigendian bug in order of time conversion. Merge 2.5 to 2.4 version. Formatting cleanup. | ||
917 | |||
918 | Version 0.55 | ||
919 | ------------ | ||
920 | Fixes from Zwane Mwaikambo for adding missing return code checking in a few places. | ||
921 | Also included a modified version of his fix to protect global list manipulation of | ||
922 | the smb session and tree connection and mid related global variables. | ||
923 | |||
924 | Version 0.54 | ||
925 | ------------ | ||
926 | Fix problem with captive thread hanging around at unmount time. Adjust to 2.5.42-pre | ||
927 | changes to superblock layout. Remove wasteful allocation of smb buffers (now the send | ||
928 | buffer is reused for responses). Add more oplock handling. Additional minor cleanup. | ||
929 | |||
930 | Version 0.53 | ||
931 | ------------ | ||
932 | More stylistic updates to better match kernel style. Add additional statistics | ||
933 | for filesystem which can be viewed via /proc/fs/cifs. Add more pieces of NTLMv2 | ||
934 | and CIFS Packet Signing enablement. | ||
935 | |||
936 | Version 0.52 | ||
937 | ------------ | ||
938 | Replace call to sleep_on with safer wait_on_event. | ||
939 | Make stylistic changes to better match kernel style recommendations. | ||
940 | Remove most typedef usage (except for the PDUs themselves). | ||
941 | |||
942 | Version 0.51 | ||
943 | ------------ | ||
944 | Update mount so the -unc mount option is no longer required (the ip address can be specified | ||
945 | in a UNC style device name. Implementation of readpage/writepage started. | ||
946 | |||
947 | Version 0.50 | ||
948 | ------------ | ||
949 | Fix intermittent problem with incorrect smb header checking on badly | ||
950 | fragmented tcp responses | ||
951 | |||
952 | Version 0.49 | ||
953 | ------------ | ||
954 | Fixes to setting of allocation size and file size. | ||
955 | |||
956 | Version 0.48 | ||
957 | ------------ | ||
958 | Various 2.5.38 fixes. Now works on 2.5.38 | ||
959 | |||
960 | Version 0.47 | ||
961 | ------------ | ||
962 | Prepare for 2.5 kernel merge. Remove ifdefs. | ||
963 | |||
964 | Version 0.46 | ||
965 | ------------ | ||
966 | Socket buffer management fixes. Fix dual free. | ||
967 | |||
968 | Version 0.45 | ||
969 | ------------ | ||
970 | Various big endian fixes for hardlinks and symlinks and also for dfs. | ||
971 | |||
972 | Version 0.44 | ||
973 | ------------ | ||
974 | Various big endian fixes for servers with Unix extensions such as Samba | ||
975 | |||
976 | Version 0.43 | ||
977 | ------------ | ||
978 | Various FindNext fixes for incorrect filenames on large directory searches on big endian | ||
979 | clients. basic posix file i/o tests now work on big endian machines, not just le | ||
980 | |||
981 | Version 0.42 | ||
982 | ------------ | ||
983 | SessionSetup and NegotiateProtocol now work from Big Endian machines. | ||
984 | Various Big Endian fixes found during testing on the Linux on 390. Various fixes for compatibility with older | ||
985 | versions of 2.4 kernel (now builds and works again on kernels at least as early as 2.4.7). | ||
986 | |||
987 | Version 0.41 | ||
988 | ------------ | ||
989 | Various minor fixes for Connectathon Posix "basic" file i/o test suite. Directory caching fixed so hardlinked | ||
990 | files now return the correct number of links on fstat as they are repeatedly linked and unlinked. | ||
991 | |||
992 | Version 0.40 | ||
993 | ------------ | ||
994 | Implemented "Raw" (i.e. not encapsulated in SPNEGO) NTLMSSP (i.e. the Security Provider Interface used to negotiate | ||
995 | session advanced session authentication). Raw NTLMSSP is preferred by Windows 2000 Professional and Windows XP. | ||
996 | Began implementing support for SPNEGO encapsulation of NTLMSSP based session authentication blobs | ||
997 | (which is the mechanism preferred by Windows 2000 server in the absence of Kerberos). | ||
998 | |||
999 | Version 0.38 | ||
1000 | ------------ | ||
1001 | Introduced optional mount helper utility mount.cifs and made coreq changes to cifs vfs to enable | ||
1002 | it. Fixed a few bugs in the DFS code (e.g. bcc two bytes too short and incorrect uid in PDU). | ||
1003 | |||
1004 | Version 0.37 | ||
1005 | ------------ | ||
1006 | Rewrote much of connection and mount/unmount logic to handle bugs with | ||
1007 | multiple uses to same share, multiple users to same server etc. | ||
1008 | |||
1009 | Version 0.36 | ||
1010 | ------------ | ||
1011 | Fixed major problem with dentry corruption (missing call to dput) | ||
1012 | |||
1013 | Version 0.35 | ||
1014 | ------------ | ||
1015 | Rewrite of readdir code to fix bug. Various fixes for bigendian machines. | ||
1016 | Begin adding oplock support. Multiusermount and oplockEnabled flags added to /proc/fs/cifs | ||
1017 | although corresponding function not fully implemented in the vfs yet | ||
1018 | |||
1019 | Version 0.34 | ||
1020 | ------------ | ||
1021 | Fixed dentry caching bug, misc. cleanup | ||
1022 | |||
1023 | Version 0.33 | ||
1024 | ------------ | ||
1025 | Fixed 2.5 support to handle build and configure changes as well as misc. 2.5 changes. Now can build | ||
1026 | on current 2.5 beta version (2.5.24) of the Linux kernel as well as on 2.4 Linux kernels. | ||
1027 | Support for STATUS codes (newer 32 bit NT error codes) added. DFS support begun to be added. | ||
1028 | |||
1029 | Version 0.32 | ||
1030 | ------------ | ||
1031 | Unix extensions (symlink, readlink, hardlink, chmod and some chgrp and chown) implemented | ||
1032 | and tested against Samba 2.2.5 | ||
1033 | |||
1034 | |||
1035 | Version 0.31 | ||
1036 | ------------ | ||
1037 | 1) Fixed lockrange to be correct (it was one byte too short) | ||
1038 | |||
1039 | 2) Fixed GETLK (i.e. the fcntl call to test a range of bytes in a file to see if locked) to correctly | ||
1040 | show range as locked when there is a conflict with an existing lock. | ||
1041 | |||
1042 | 3) default file perms are now 2767 (indicating support for mandatory locks) instead of 777 for directories | ||
1043 | in most cases. Eventually will offer optional ability to query server for the correct perms. | ||
1044 | |||
1045 | 3) Fixed eventual trap when mounting twice to different shares on the same server when the first succeeded | ||
1046 | but the second one was invalid and failed (the second one was incorrectly disconnecting the tcp and smb | ||
1047 | session) | ||
1048 | |||
1049 | 4) Fixed error logging of valid mount options | ||
1050 | |||
1051 | 5) Removed logging of password field. | ||
1052 | |||
1053 | 6) Moved negotiate, treeDisconnect and uloggoffX (only tConx and SessSetup remain in connect.c) to cifssmb.c | ||
1054 | and cleaned them up and made them more consistent with other cifs functions. | ||
1055 | |||
1056 | 7) Server support for Unix extensions is now fully detected and FindFirst is implemented both ways | ||
1057 | (with or without Unix extensions) but FindNext and QueryPathInfo with the Unix extensions are not completed, | ||
1058 | nor is the symlink support using the Unix extensions | ||
1059 | |||
1060 | 8) Started adding the readlink and follow_link code | ||
1061 | |||
1062 | Version 0.3 | ||
1063 | ----------- | ||
1064 | Initial drop | ||
1065 | |||
diff --git a/fs/cifs/README b/fs/cifs/README deleted file mode 100644 index 2d5622f60e11..000000000000 --- a/fs/cifs/README +++ /dev/null | |||
@@ -1,753 +0,0 @@ | |||
1 | The CIFS VFS support for Linux supports many advanced network filesystem | ||
2 | features such as hierarchical dfs like namespace, hardlinks, locking and more. | ||
3 | It was designed to comply with the SNIA CIFS Technical Reference (which | ||
4 | supersedes the 1992 X/Open SMB Standard) as well as to perform best practice | ||
5 | practical interoperability with Windows 2000, Windows XP, Samba and equivalent | ||
6 | servers. This code was developed in participation with the Protocol Freedom | ||
7 | Information Foundation. | ||
8 | |||
9 | Please see | ||
10 | http://protocolfreedom.org/ and | ||
11 | http://samba.org/samba/PFIF/ | ||
12 | for more details. | ||
13 | |||
14 | |||
15 | For questions or bug reports please contact: | ||
16 | sfrench@samba.org (sfrench@us.ibm.com) | ||
17 | |||
18 | Build instructions: | ||
19 | ================== | ||
20 | For Linux 2.4: | ||
21 | 1) Get the kernel source (e.g.from http://www.kernel.org) | ||
22 | and download the cifs vfs source (see the project page | ||
23 | at http://us1.samba.org/samba/Linux_CIFS_client.html) | ||
24 | and change directory into the top of the kernel directory | ||
25 | then patch the kernel (e.g. "patch -p1 < cifs_24.patch") | ||
26 | to add the cifs vfs to your kernel configure options if | ||
27 | it has not already been added (e.g. current SuSE and UL | ||
28 | users do not need to apply the cifs_24.patch since the cifs vfs is | ||
29 | already in the kernel configure menu) and then | ||
30 | mkdir linux/fs/cifs and then copy the current cifs vfs files from | ||
31 | the cifs download to your kernel build directory e.g. | ||
32 | |||
33 | cp <cifs_download_dir>/fs/cifs/* to <kernel_download_dir>/fs/cifs | ||
34 | |||
35 | 2) make menuconfig (or make xconfig) | ||
36 | 3) select cifs from within the network filesystem choices | ||
37 | 4) save and exit | ||
38 | 5) make dep | ||
39 | 6) make modules (or "make" if CIFS VFS not to be built as a module) | ||
40 | |||
41 | For Linux 2.6: | ||
42 | 1) Download the kernel (e.g. from http://www.kernel.org) | ||
43 | and change directory into the top of the kernel directory tree | ||
44 | (e.g. /usr/src/linux-2.5.73) | ||
45 | 2) make menuconfig (or make xconfig) | ||
46 | 3) select cifs from within the network filesystem choices | ||
47 | 4) save and exit | ||
48 | 5) make | ||
49 | |||
50 | |||
51 | Installation instructions: | ||
52 | ========================= | ||
53 | If you have built the CIFS vfs as module (successfully) simply | ||
54 | type "make modules_install" (or if you prefer, manually copy the file to | ||
55 | the modules directory e.g. /lib/modules/2.4.10-4GB/kernel/fs/cifs/cifs.o). | ||
56 | |||
57 | If you have built the CIFS vfs into the kernel itself, follow the instructions | ||
58 | for your distribution on how to install a new kernel (usually you | ||
59 | would simply type "make install"). | ||
60 | |||
61 | If you do not have the utility mount.cifs (in the Samba 3.0 source tree and on | ||
62 | the CIFS VFS web site) copy it to the same directory in which mount.smbfs and | ||
63 | similar files reside (usually /sbin). Although the helper software is not | ||
64 | required, mount.cifs is recommended. Eventually the Samba 3.0 utility program | ||
65 | "net" may also be helpful since it may someday provide easier mount syntax for | ||
66 | users who are used to Windows e.g. | ||
67 | net use <mount point> <UNC name or cifs URL> | ||
68 | Note that running the Winbind pam/nss module (logon service) on all of your | ||
69 | Linux clients is useful in mapping Uids and Gids consistently across the | ||
70 | domain to the proper network user. The mount.cifs mount helper can be | ||
71 | trivially built from Samba 3.0 or later source e.g. by executing: | ||
72 | |||
73 | gcc samba/source/client/mount.cifs.c -o mount.cifs | ||
74 | |||
75 | If cifs is built as a module, then the size and number of network buffers | ||
76 | and maximum number of simultaneous requests to one server can be configured. | ||
77 | Changing these from their defaults is not recommended. By executing modinfo | ||
78 | modinfo kernel/fs/cifs/cifs.ko | ||
79 | on kernel/fs/cifs/cifs.ko the list of configuration changes that can be made | ||
80 | at module initialization time (by running insmod cifs.ko) can be seen. | ||
81 | |||
82 | Allowing User Mounts | ||
83 | ==================== | ||
84 | To permit users to mount and unmount over directories they own is possible | ||
85 | with the cifs vfs. A way to enable such mounting is to mark the mount.cifs | ||
86 | utility as suid (e.g. "chmod +s /sbin/mount.cifs). To enable users to | ||
87 | umount shares they mount requires | ||
88 | 1) mount.cifs version 1.4 or later | ||
89 | 2) an entry for the share in /etc/fstab indicating that a user may | ||
90 | unmount it e.g. | ||
91 | //server/usersharename /mnt/username cifs user 0 0 | ||
92 | |||
93 | Note that when the mount.cifs utility is run suid (allowing user mounts), | ||
94 | in order to reduce risks, the "nosuid" mount flag is passed in on mount to | ||
95 | disallow execution of an suid program mounted on the remote target. | ||
96 | When mount is executed as root, nosuid is not passed in by default, | ||
97 | and execution of suid programs on the remote target would be enabled | ||
98 | by default. This can be changed, as with nfs and other filesystems, | ||
99 | by simply specifying "nosuid" among the mount options. For user mounts | ||
100 | though to be able to pass the suid flag to mount requires rebuilding | ||
101 | mount.cifs with the following flag: | ||
102 | |||
103 | gcc samba/source/client/mount.cifs.c -DCIFS_ALLOW_USR_SUID -o mount.cifs | ||
104 | |||
105 | There is a corresponding manual page for cifs mounting in the Samba 3.0 and | ||
106 | later source tree in docs/manpages/mount.cifs.8 | ||
107 | |||
108 | Allowing User Unmounts | ||
109 | ====================== | ||
110 | To permit users to ummount directories that they have user mounted (see above), | ||
111 | the utility umount.cifs may be used. It may be invoked directly, or if | ||
112 | umount.cifs is placed in /sbin, umount can invoke the cifs umount helper | ||
113 | (at least for most versions of the umount utility) for umount of cifs | ||
114 | mounts, unless umount is invoked with -i (which will avoid invoking a umount | ||
115 | helper). As with mount.cifs, to enable user unmounts umount.cifs must be marked | ||
116 | as suid (e.g. "chmod +s /sbin/umount.cifs") or equivalent (some distributions | ||
117 | allow adding entries to a file to the /etc/permissions file to achieve the | ||
118 | equivalent suid effect). For this utility to succeed the target path | ||
119 | must be a cifs mount, and the uid of the current user must match the uid | ||
120 | of the user who mounted the resource. | ||
121 | |||
122 | Also note that the customary way of allowing user mounts and unmounts is | ||
123 | (instead of using mount.cifs and unmount.cifs as suid) to add a line | ||
124 | to the file /etc/fstab for each //server/share you wish to mount, but | ||
125 | this can become unwieldy when potential mount targets include many | ||
126 | or unpredictable UNC names. | ||
127 | |||
128 | Samba Considerations | ||
129 | ==================== | ||
130 | To get the maximum benefit from the CIFS VFS, we recommend using a server that | ||
131 | supports the SNIA CIFS Unix Extensions standard (e.g. Samba 2.2.5 or later or | ||
132 | Samba 3.0) but the CIFS vfs works fine with a wide variety of CIFS servers. | ||
133 | Note that uid, gid and file permissions will display default values if you do | ||
134 | not have a server that supports the Unix extensions for CIFS (such as Samba | ||
135 | 2.2.5 or later). To enable the Unix CIFS Extensions in the Samba server, add | ||
136 | the line: | ||
137 | |||
138 | unix extensions = yes | ||
139 | |||
140 | to your smb.conf file on the server. Note that the following smb.conf settings | ||
141 | are also useful (on the Samba server) when the majority of clients are Unix or | ||
142 | Linux: | ||
143 | |||
144 | case sensitive = yes | ||
145 | delete readonly = yes | ||
146 | ea support = yes | ||
147 | |||
148 | Note that server ea support is required for supporting xattrs from the Linux | ||
149 | cifs client, and that EA support is present in later versions of Samba (e.g. | ||
150 | 3.0.6 and later (also EA support works in all versions of Windows, at least to | ||
151 | shares on NTFS filesystems). Extended Attribute (xattr) support is an optional | ||
152 | feature of most Linux filesystems which may require enabling via | ||
153 | make menuconfig. Client support for extended attributes (user xattr) can be | ||
154 | disabled on a per-mount basis by specifying "nouser_xattr" on mount. | ||
155 | |||
156 | The CIFS client can get and set POSIX ACLs (getfacl, setfacl) to Samba servers | ||
157 | version 3.10 and later. Setting POSIX ACLs requires enabling both XATTR and | ||
158 | then POSIX support in the CIFS configuration options when building the cifs | ||
159 | module. POSIX ACL support can be disabled on a per mount basic by specifying | ||
160 | "noacl" on mount. | ||
161 | |||
162 | Some administrators may want to change Samba's smb.conf "map archive" and | ||
163 | "create mask" parameters from the default. Unless the create mask is changed | ||
164 | newly created files can end up with an unnecessarily restrictive default mode, | ||
165 | which may not be what you want, although if the CIFS Unix extensions are | ||
166 | enabled on the server and client, subsequent setattr calls (e.g. chmod) can | ||
167 | fix the mode. Note that creating special devices (mknod) remotely | ||
168 | may require specifying a mkdev function to Samba if you are not using | ||
169 | Samba 3.0.6 or later. For more information on these see the manual pages | ||
170 | ("man smb.conf") on the Samba server system. Note that the cifs vfs, | ||
171 | unlike the smbfs vfs, does not read the smb.conf on the client system | ||
172 | (the few optional settings are passed in on mount via -o parameters instead). | ||
173 | Note that Samba 2.2.7 or later includes a fix that allows the CIFS VFS to delete | ||
174 | open files (required for strict POSIX compliance). Windows Servers already | ||
175 | supported this feature. Samba server does not allow symlinks that refer to files | ||
176 | outside of the share, so in Samba versions prior to 3.0.6, most symlinks to | ||
177 | files with absolute paths (ie beginning with slash) such as: | ||
178 | ln -s /mnt/foo bar | ||
179 | would be forbidden. Samba 3.0.6 server or later includes the ability to create | ||
180 | such symlinks safely by converting unsafe symlinks (ie symlinks to server | ||
181 | files that are outside of the share) to a samba specific format on the server | ||
182 | that is ignored by local server applications and non-cifs clients and that will | ||
183 | not be traversed by the Samba server). This is opaque to the Linux client | ||
184 | application using the cifs vfs. Absolute symlinks will work to Samba 3.0.5 or | ||
185 | later, but only for remote clients using the CIFS Unix extensions, and will | ||
186 | be invisbile to Windows clients and typically will not affect local | ||
187 | applications running on the same server as Samba. | ||
188 | |||
189 | Use instructions: | ||
190 | ================ | ||
191 | Once the CIFS VFS support is built into the kernel or installed as a module | ||
192 | (cifs.o), you can use mount syntax like the following to access Samba or Windows | ||
193 | servers: | ||
194 | |||
195 | mount -t cifs //9.53.216.11/e$ /mnt -o user=myname,pass=mypassword | ||
196 | |||
197 | Before -o the option -v may be specified to make the mount.cifs | ||
198 | mount helper display the mount steps more verbosely. | ||
199 | After -o the following commonly used cifs vfs specific options | ||
200 | are supported: | ||
201 | |||
202 | user=<username> | ||
203 | pass=<password> | ||
204 | domain=<domain name> | ||
205 | |||
206 | Other cifs mount options are described below. Use of TCP names (in addition to | ||
207 | ip addresses) is available if the mount helper (mount.cifs) is installed. If | ||
208 | you do not trust the server to which are mounted, or if you do not have | ||
209 | cifs signing enabled (and the physical network is insecure), consider use | ||
210 | of the standard mount options "noexec" and "nosuid" to reduce the risk of | ||
211 | running an altered binary on your local system (downloaded from a hostile server | ||
212 | or altered by a hostile router). | ||
213 | |||
214 | Although mounting using format corresponding to the CIFS URL specification is | ||
215 | not possible in mount.cifs yet, it is possible to use an alternate format | ||
216 | for the server and sharename (which is somewhat similar to NFS style mount | ||
217 | syntax) instead of the more widely used UNC format (i.e. \\server\share): | ||
218 | mount -t cifs tcp_name_of_server:share_name /mnt -o user=myname,pass=mypasswd | ||
219 | |||
220 | When using the mount helper mount.cifs, passwords may be specified via alternate | ||
221 | mechanisms, instead of specifying it after -o using the normal "pass=" syntax | ||
222 | on the command line: | ||
223 | 1) By including it in a credential file. Specify credentials=filename as one | ||
224 | of the mount options. Credential files contain two lines | ||
225 | username=someuser | ||
226 | password=your_password | ||
227 | 2) By specifying the password in the PASSWD environment variable (similarly | ||
228 | the user name can be taken from the USER environment variable). | ||
229 | 3) By specifying the password in a file by name via PASSWD_FILE | ||
230 | 4) By specifying the password in a file by file descriptor via PASSWD_FD | ||
231 | |||
232 | If no password is provided, mount.cifs will prompt for password entry | ||
233 | |||
234 | Restrictions | ||
235 | ============ | ||
236 | Servers must support either "pure-TCP" (port 445 TCP/IP CIFS connections) or RFC | ||
237 | 1001/1002 support for "Netbios-Over-TCP/IP." This is not likely to be a | ||
238 | problem as most servers support this. | ||
239 | |||
240 | Valid filenames differ between Windows and Linux. Windows typically restricts | ||
241 | filenames which contain certain reserved characters (e.g.the character : | ||
242 | which is used to delimit the beginning of a stream name by Windows), while | ||
243 | Linux allows a slightly wider set of valid characters in filenames. Windows | ||
244 | servers can remap such characters when an explicit mapping is specified in | ||
245 | the Server's registry. Samba starting with version 3.10 will allow such | ||
246 | filenames (ie those which contain valid Linux characters, which normally | ||
247 | would be forbidden for Windows/CIFS semantics) as long as the server is | ||
248 | configured for Unix Extensions (and the client has not disabled | ||
249 | /proc/fs/cifs/LinuxExtensionsEnabled). | ||
250 | |||
251 | |||
252 | CIFS VFS Mount Options | ||
253 | ====================== | ||
254 | A partial list of the supported mount options follows: | ||
255 | user The user name to use when trying to establish | ||
256 | the CIFS session. | ||
257 | password The user password. If the mount helper is | ||
258 | installed, the user will be prompted for password | ||
259 | if not supplied. | ||
260 | ip The ip address of the target server | ||
261 | unc The target server Universal Network Name (export) to | ||
262 | mount. | ||
263 | domain Set the SMB/CIFS workgroup name prepended to the | ||
264 | username during CIFS session establishment | ||
265 | forceuid Set the default uid for inodes to the uid | ||
266 | passed in on mount. For mounts to servers | ||
267 | which do support the CIFS Unix extensions, such as a | ||
268 | properly configured Samba server, the server provides | ||
269 | the uid, gid and mode so this parameter should not be | ||
270 | specified unless the server and clients uid and gid | ||
271 | numbering differ. If the server and client are in the | ||
272 | same domain (e.g. running winbind or nss_ldap) and | ||
273 | the server supports the Unix Extensions then the uid | ||
274 | and gid can be retrieved from the server (and uid | ||
275 | and gid would not have to be specifed on the mount. | ||
276 | For servers which do not support the CIFS Unix | ||
277 | extensions, the default uid (and gid) returned on lookup | ||
278 | of existing files will be the uid (gid) of the person | ||
279 | who executed the mount (root, except when mount.cifs | ||
280 | is configured setuid for user mounts) unless the "uid=" | ||
281 | (gid) mount option is specified. Also note that permission | ||
282 | checks (authorization checks) on accesses to a file occur | ||
283 | at the server, but there are cases in which an administrator | ||
284 | may want to restrict at the client as well. For those | ||
285 | servers which do not report a uid/gid owner | ||
286 | (such as Windows), permissions can also be checked at the | ||
287 | client, and a crude form of client side permission checking | ||
288 | can be enabled by specifying file_mode and dir_mode on | ||
289 | the client. (default) | ||
290 | forcegid (similar to above but for the groupid instead of uid) (default) | ||
291 | noforceuid Fill in file owner information (uid) by requesting it from | ||
292 | the server if possible. With this option, the value given in | ||
293 | the uid= option (on mount) will only be used if the server | ||
294 | can not support returning uids on inodes. | ||
295 | noforcegid (similar to above but for the group owner, gid, instead of uid) | ||
296 | uid Set the default uid for inodes, and indicate to the | ||
297 | cifs kernel driver which local user mounted. If the server | ||
298 | supports the unix extensions the default uid is | ||
299 | not used to fill in the owner fields of inodes (files) | ||
300 | unless the "forceuid" parameter is specified. | ||
301 | gid Set the default gid for inodes (similar to above). | ||
302 | file_mode If CIFS Unix extensions are not supported by the server | ||
303 | this overrides the default mode for file inodes. | ||
304 | fsc Enable local disk caching using FS-Cache (off by default). This | ||
305 | option could be useful to improve performance on a slow link, | ||
306 | heavily loaded server and/or network where reading from the | ||
307 | disk is faster than reading from the server (over the network). | ||
308 | This could also impact scalability positively as the | ||
309 | number of calls to the server are reduced. However, local | ||
310 | caching is not suitable for all workloads for e.g. read-once | ||
311 | type workloads. So, you need to consider carefully your | ||
312 | workload/scenario before using this option. Currently, local | ||
313 | disk caching is functional for CIFS files opened as read-only. | ||
314 | dir_mode If CIFS Unix extensions are not supported by the server | ||
315 | this overrides the default mode for directory inodes. | ||
316 | port attempt to contact the server on this tcp port, before | ||
317 | trying the usual ports (port 445, then 139). | ||
318 | iocharset Codepage used to convert local path names to and from | ||
319 | Unicode. Unicode is used by default for network path | ||
320 | names if the server supports it. If iocharset is | ||
321 | not specified then the nls_default specified | ||
322 | during the local client kernel build will be used. | ||
323 | If server does not support Unicode, this parameter is | ||
324 | unused. | ||
325 | rsize default read size (usually 16K). The client currently | ||
326 | can not use rsize larger than CIFSMaxBufSize. CIFSMaxBufSize | ||
327 | defaults to 16K and may be changed (from 8K to the maximum | ||
328 | kmalloc size allowed by your kernel) at module install time | ||
329 | for cifs.ko. Setting CIFSMaxBufSize to a very large value | ||
330 | will cause cifs to use more memory and may reduce performance | ||
331 | in some cases. To use rsize greater than 127K (the original | ||
332 | cifs protocol maximum) also requires that the server support | ||
333 | a new Unix Capability flag (for very large read) which some | ||
334 | newer servers (e.g. Samba 3.0.26 or later) do. rsize can be | ||
335 | set from a minimum of 2048 to a maximum of 130048 (127K or | ||
336 | CIFSMaxBufSize, whichever is smaller) | ||
337 | wsize default write size (default 57344) | ||
338 | maximum wsize currently allowed by CIFS is 57344 (fourteen | ||
339 | 4096 byte pages) | ||
340 | actimeo=n attribute cache timeout in seconds (default 1 second). | ||
341 | After this timeout, the cifs client requests fresh attribute | ||
342 | information from the server. This option allows to tune the | ||
343 | attribute cache timeout to suit the workload needs. Shorter | ||
344 | timeouts mean better the cache coherency, but increased number | ||
345 | of calls to the server. Longer timeouts mean reduced number | ||
346 | of calls to the server at the expense of less stricter cache | ||
347 | coherency checks (i.e. incorrect attribute cache for a short | ||
348 | period of time). | ||
349 | rw mount the network share read-write (note that the | ||
350 | server may still consider the share read-only) | ||
351 | ro mount network share read-only | ||
352 | version used to distinguish different versions of the | ||
353 | mount helper utility (not typically needed) | ||
354 | sep if first mount option (after the -o), overrides | ||
355 | the comma as the separator between the mount | ||
356 | parms. e.g. | ||
357 | -o user=myname,password=mypassword,domain=mydom | ||
358 | could be passed instead with period as the separator by | ||
359 | -o sep=.user=myname.password=mypassword.domain=mydom | ||
360 | this might be useful when comma is contained within username | ||
361 | or password or domain. This option is less important | ||
362 | when the cifs mount helper cifs.mount (version 1.1 or later) | ||
363 | is used. | ||
364 | nosuid Do not allow remote executables with the suid bit | ||
365 | program to be executed. This is only meaningful for mounts | ||
366 | to servers such as Samba which support the CIFS Unix Extensions. | ||
367 | If you do not trust the servers in your network (your mount | ||
368 | targets) it is recommended that you specify this option for | ||
369 | greater security. | ||
370 | exec Permit execution of binaries on the mount. | ||
371 | noexec Do not permit execution of binaries on the mount. | ||
372 | dev Recognize block devices on the remote mount. | ||
373 | nodev Do not recognize devices on the remote mount. | ||
374 | suid Allow remote files on this mountpoint with suid enabled to | ||
375 | be executed (default for mounts when executed as root, | ||
376 | nosuid is default for user mounts). | ||
377 | credentials Although ignored by the cifs kernel component, it is used by | ||
378 | the mount helper, mount.cifs. When mount.cifs is installed it | ||
379 | opens and reads the credential file specified in order | ||
380 | to obtain the userid and password arguments which are passed to | ||
381 | the cifs vfs. | ||
382 | guest Although ignored by the kernel component, the mount.cifs | ||
383 | mount helper will not prompt the user for a password | ||
384 | if guest is specified on the mount options. If no | ||
385 | password is specified a null password will be used. | ||
386 | perm Client does permission checks (vfs_permission check of uid | ||
387 | and gid of the file against the mode and desired operation), | ||
388 | Note that this is in addition to the normal ACL check on the | ||
389 | target machine done by the server software. | ||
390 | Client permission checking is enabled by default. | ||
391 | noperm Client does not do permission checks. This can expose | ||
392 | files on this mount to access by other users on the local | ||
393 | client system. It is typically only needed when the server | ||
394 | supports the CIFS Unix Extensions but the UIDs/GIDs on the | ||
395 | client and server system do not match closely enough to allow | ||
396 | access by the user doing the mount, but it may be useful with | ||
397 | non CIFS Unix Extension mounts for cases in which the default | ||
398 | mode is specified on the mount but is not to be enforced on the | ||
399 | client (e.g. perhaps when MultiUserMount is enabled) | ||
400 | Note that this does not affect the normal ACL check on the | ||
401 | target machine done by the server software (of the server | ||
402 | ACL against the user name provided at mount time). | ||
403 | serverino Use server's inode numbers instead of generating automatically | ||
404 | incrementing inode numbers on the client. Although this will | ||
405 | make it easier to spot hardlinked files (as they will have | ||
406 | the same inode numbers) and inode numbers may be persistent, | ||
407 | note that the server does not guarantee that the inode numbers | ||
408 | are unique if multiple server side mounts are exported under a | ||
409 | single share (since inode numbers on the servers might not | ||
410 | be unique if multiple filesystems are mounted under the same | ||
411 | shared higher level directory). Note that some older | ||
412 | (e.g. pre-Windows 2000) do not support returning UniqueIDs | ||
413 | or the CIFS Unix Extensions equivalent and for those | ||
414 | this mount option will have no effect. Exporting cifs mounts | ||
415 | under nfsd requires this mount option on the cifs mount. | ||
416 | This is now the default if server supports the | ||
417 | required network operation. | ||
418 | noserverino Client generates inode numbers (rather than using the actual one | ||
419 | from the server). These inode numbers will vary after | ||
420 | unmount or reboot which can confuse some applications, | ||
421 | but not all server filesystems support unique inode | ||
422 | numbers. | ||
423 | setuids If the CIFS Unix extensions are negotiated with the server | ||
424 | the client will attempt to set the effective uid and gid of | ||
425 | the local process on newly created files, directories, and | ||
426 | devices (create, mkdir, mknod). If the CIFS Unix Extensions | ||
427 | are not negotiated, for newly created files and directories | ||
428 | instead of using the default uid and gid specified on | ||
429 | the mount, cache the new file's uid and gid locally which means | ||
430 | that the uid for the file can change when the inode is | ||
431 | reloaded (or the user remounts the share). | ||
432 | nosetuids The client will not attempt to set the uid and gid on | ||
433 | on newly created files, directories, and devices (create, | ||
434 | mkdir, mknod) which will result in the server setting the | ||
435 | uid and gid to the default (usually the server uid of the | ||
436 | user who mounted the share). Letting the server (rather than | ||
437 | the client) set the uid and gid is the default. If the CIFS | ||
438 | Unix Extensions are not negotiated then the uid and gid for | ||
439 | new files will appear to be the uid (gid) of the mounter or the | ||
440 | uid (gid) parameter specified on the mount. | ||
441 | netbiosname When mounting to servers via port 139, specifies the RFC1001 | ||
442 | source name to use to represent the client netbios machine | ||
443 | name when doing the RFC1001 netbios session initialize. | ||
444 | direct Do not do inode data caching on files opened on this mount. | ||
445 | This precludes mmapping files on this mount. In some cases | ||
446 | with fast networks and little or no caching benefits on the | ||
447 | client (e.g. when the application is doing large sequential | ||
448 | reads bigger than page size without rereading the same data) | ||
449 | this can provide better performance than the default | ||
450 | behavior which caches reads (readahead) and writes | ||
451 | (writebehind) through the local Linux client pagecache | ||
452 | if oplock (caching token) is granted and held. Note that | ||
453 | direct allows write operations larger than page size | ||
454 | to be sent to the server. | ||
455 | strictcache Use for switching on strict cache mode. In this mode the | ||
456 | client read from the cache all the time it has Oplock Level II, | ||
457 | otherwise - read from the server. All written data are stored | ||
458 | in the cache, but if the client doesn't have Exclusive Oplock, | ||
459 | it writes the data to the server. | ||
460 | rwpidforward Forward pid of a process who opened a file to any read or write | ||
461 | operation on that file. This prevent applications like WINE | ||
462 | from failing on read and write if we use mandatory brlock style. | ||
463 | acl Allow setfacl and getfacl to manage posix ACLs if server | ||
464 | supports them. (default) | ||
465 | noacl Do not allow setfacl and getfacl calls on this mount | ||
466 | user_xattr Allow getting and setting user xattrs (those attributes whose | ||
467 | name begins with "user." or "os2.") as OS/2 EAs (extended | ||
468 | attributes) to the server. This allows support of the | ||
469 | setfattr and getfattr utilities. (default) | ||
470 | nouser_xattr Do not allow getfattr/setfattr to get/set/list xattrs | ||
471 | mapchars Translate six of the seven reserved characters (not backslash) | ||
472 | *?<>|: | ||
473 | to the remap range (above 0xF000), which also | ||
474 | allows the CIFS client to recognize files created with | ||
475 | such characters by Windows's POSIX emulation. This can | ||
476 | also be useful when mounting to most versions of Samba | ||
477 | (which also forbids creating and opening files | ||
478 | whose names contain any of these seven characters). | ||
479 | This has no effect if the server does not support | ||
480 | Unicode on the wire. | ||
481 | nomapchars Do not translate any of these seven characters (default). | ||
482 | nocase Request case insensitive path name matching (case | ||
483 | sensitive is the default if the server supports it). | ||
484 | (mount option "ignorecase" is identical to "nocase") | ||
485 | posixpaths If CIFS Unix extensions are supported, attempt to | ||
486 | negotiate posix path name support which allows certain | ||
487 | characters forbidden in typical CIFS filenames, without | ||
488 | requiring remapping. (default) | ||
489 | noposixpaths If CIFS Unix extensions are supported, do not request | ||
490 | posix path name support (this may cause servers to | ||
491 | reject creatingfile with certain reserved characters). | ||
492 | nounix Disable the CIFS Unix Extensions for this mount (tree | ||
493 | connection). This is rarely needed, but it may be useful | ||
494 | in order to turn off multiple settings all at once (ie | ||
495 | posix acls, posix locks, posix paths, symlink support | ||
496 | and retrieving uids/gids/mode from the server) or to | ||
497 | work around a bug in server which implement the Unix | ||
498 | Extensions. | ||
499 | nobrl Do not send byte range lock requests to the server. | ||
500 | This is necessary for certain applications that break | ||
501 | with cifs style mandatory byte range locks (and most | ||
502 | cifs servers do not yet support requesting advisory | ||
503 | byte range locks). | ||
504 | forcemandatorylock Even if the server supports posix (advisory) byte range | ||
505 | locking, send only mandatory lock requests. For some | ||
506 | (presumably rare) applications, originally coded for | ||
507 | DOS/Windows, which require Windows style mandatory byte range | ||
508 | locking, they may be able to take advantage of this option, | ||
509 | forcing the cifs client to only send mandatory locks | ||
510 | even if the cifs server would support posix advisory locks. | ||
511 | "forcemand" is accepted as a shorter form of this mount | ||
512 | option. | ||
513 | nostrictsync If this mount option is set, when an application does an | ||
514 | fsync call then the cifs client does not send an SMB Flush | ||
515 | to the server (to force the server to write all dirty data | ||
516 | for this file immediately to disk), although cifs still sends | ||
517 | all dirty (cached) file data to the server and waits for the | ||
518 | server to respond to the write. Since SMB Flush can be | ||
519 | very slow, and some servers may be reliable enough (to risk | ||
520 | delaying slightly flushing the data to disk on the server), | ||
521 | turning on this option may be useful to improve performance for | ||
522 | applications that fsync too much, at a small risk of server | ||
523 | crash. If this mount option is not set, by default cifs will | ||
524 | send an SMB flush request (and wait for a response) on every | ||
525 | fsync call. | ||
526 | nodfs Disable DFS (global name space support) even if the | ||
527 | server claims to support it. This can help work around | ||
528 | a problem with parsing of DFS paths with Samba server | ||
529 | versions 3.0.24 and 3.0.25. | ||
530 | remount remount the share (often used to change from ro to rw mounts | ||
531 | or vice versa) | ||
532 | cifsacl Report mode bits (e.g. on stat) based on the Windows ACL for | ||
533 | the file. (EXPERIMENTAL) | ||
534 | servern Specify the server 's netbios name (RFC1001 name) to use | ||
535 | when attempting to setup a session to the server. | ||
536 | This is needed for mounting to some older servers (such | ||
537 | as OS/2 or Windows 98 and Windows ME) since they do not | ||
538 | support a default server name. A server name can be up | ||
539 | to 15 characters long and is usually uppercased. | ||
540 | sfu When the CIFS Unix Extensions are not negotiated, attempt to | ||
541 | create device files and fifos in a format compatible with | ||
542 | Services for Unix (SFU). In addition retrieve bits 10-12 | ||
543 | of the mode via the SETFILEBITS extended attribute (as | ||
544 | SFU does). In the future the bottom 9 bits of the | ||
545 | mode also will be emulated using queries of the security | ||
546 | descriptor (ACL). | ||
547 | mfsymlinks Enable support for Minshall+French symlinks | ||
548 | (see http://wiki.samba.org/index.php/UNIX_Extensions#Minshall.2BFrench_symlinks) | ||
549 | This option is ignored when specified together with the | ||
550 | 'sfu' option. Minshall+French symlinks are used even if | ||
551 | the server supports the CIFS Unix Extensions. | ||
552 | sign Must use packet signing (helps avoid unwanted data modification | ||
553 | by intermediate systems in the route). Note that signing | ||
554 | does not work with lanman or plaintext authentication. | ||
555 | seal Must seal (encrypt) all data on this mounted share before | ||
556 | sending on the network. Requires support for Unix Extensions. | ||
557 | Note that this differs from the sign mount option in that it | ||
558 | causes encryption of data sent over this mounted share but other | ||
559 | shares mounted to the same server are unaffected. | ||
560 | locallease This option is rarely needed. Fcntl F_SETLEASE is | ||
561 | used by some applications such as Samba and NFSv4 server to | ||
562 | check to see whether a file is cacheable. CIFS has no way | ||
563 | to explicitly request a lease, but can check whether a file | ||
564 | is cacheable (oplocked). Unfortunately, even if a file | ||
565 | is not oplocked, it could still be cacheable (ie cifs client | ||
566 | could grant fcntl leases if no other local processes are using | ||
567 | the file) for cases for example such as when the server does not | ||
568 | support oplocks and the user is sure that the only updates to | ||
569 | the file will be from this client. Specifying this mount option | ||
570 | will allow the cifs client to check for leases (only) locally | ||
571 | for files which are not oplocked instead of denying leases | ||
572 | in that case. (EXPERIMENTAL) | ||
573 | sec Security mode. Allowed values are: | ||
574 | none attempt to connection as a null user (no name) | ||
575 | krb5 Use Kerberos version 5 authentication | ||
576 | krb5i Use Kerberos authentication and packet signing | ||
577 | ntlm Use NTLM password hashing (default) | ||
578 | ntlmi Use NTLM password hashing with signing (if | ||
579 | /proc/fs/cifs/PacketSigningEnabled on or if | ||
580 | server requires signing also can be the default) | ||
581 | ntlmv2 Use NTLMv2 password hashing | ||
582 | ntlmv2i Use NTLMv2 password hashing with packet signing | ||
583 | lanman (if configured in kernel config) use older | ||
584 | lanman hash | ||
585 | hard Retry file operations if server is not responding | ||
586 | soft Limit retries to unresponsive servers (usually only | ||
587 | one retry) before returning an error. (default) | ||
588 | |||
589 | The mount.cifs mount helper also accepts a few mount options before -o | ||
590 | including: | ||
591 | |||
592 | -S take password from stdin (equivalent to setting the environment | ||
593 | variable "PASSWD_FD=0" | ||
594 | -V print mount.cifs version | ||
595 | -? display simple usage information | ||
596 | |||
597 | With most 2.6 kernel versions of modutils, the version of the cifs kernel | ||
598 | module can be displayed via modinfo. | ||
599 | |||
600 | Misc /proc/fs/cifs Flags and Debug Info | ||
601 | ======================================= | ||
602 | Informational pseudo-files: | ||
603 | DebugData Displays information about active CIFS sessions and | ||
604 | shares, features enabled as well as the cifs.ko | ||
605 | version. | ||
606 | Stats Lists summary resource usage information as well as per | ||
607 | share statistics, if CONFIG_CIFS_STATS in enabled | ||
608 | in the kernel configuration. | ||
609 | |||
610 | Configuration pseudo-files: | ||
611 | PacketSigningEnabled If set to one, cifs packet signing is enabled | ||
612 | and will be used if the server requires | ||
613 | it. If set to two, cifs packet signing is | ||
614 | required even if the server considers packet | ||
615 | signing optional. (default 1) | ||
616 | SecurityFlags Flags which control security negotiation and | ||
617 | also packet signing. Authentication (may/must) | ||
618 | flags (e.g. for NTLM and/or NTLMv2) may be combined with | ||
619 | the signing flags. Specifying two different password | ||
620 | hashing mechanisms (as "must use") on the other hand | ||
621 | does not make much sense. Default flags are | ||
622 | 0x07007 | ||
623 | (NTLM, NTLMv2 and packet signing allowed). The maximum | ||
624 | allowable flags if you want to allow mounts to servers | ||
625 | using weaker password hashes is 0x37037 (lanman, | ||
626 | plaintext, ntlm, ntlmv2, signing allowed). Some | ||
627 | SecurityFlags require the corresponding menuconfig | ||
628 | options to be enabled (lanman and plaintext require | ||
629 | CONFIG_CIFS_WEAK_PW_HASH for example). Enabling | ||
630 | plaintext authentication currently requires also | ||
631 | enabling lanman authentication in the security flags | ||
632 | because the cifs module only supports sending | ||
633 | laintext passwords using the older lanman dialect | ||
634 | form of the session setup SMB. (e.g. for authentication | ||
635 | using plain text passwords, set the SecurityFlags | ||
636 | to 0x30030): | ||
637 | |||
638 | may use packet signing 0x00001 | ||
639 | must use packet signing 0x01001 | ||
640 | may use NTLM (most common password hash) 0x00002 | ||
641 | must use NTLM 0x02002 | ||
642 | may use NTLMv2 0x00004 | ||
643 | must use NTLMv2 0x04004 | ||
644 | may use Kerberos security 0x00008 | ||
645 | must use Kerberos 0x08008 | ||
646 | may use lanman (weak) password hash 0x00010 | ||
647 | must use lanman password hash 0x10010 | ||
648 | may use plaintext passwords 0x00020 | ||
649 | must use plaintext passwords 0x20020 | ||
650 | (reserved for future packet encryption) 0x00040 | ||
651 | |||
652 | cifsFYI If set to non-zero value, additional debug information | ||
653 | will be logged to the system error log. This field | ||
654 | contains three flags controlling different classes of | ||
655 | debugging entries. The maximum value it can be set | ||
656 | to is 7 which enables all debugging points (default 0). | ||
657 | Some debugging statements are not compiled into the | ||
658 | cifs kernel unless CONFIG_CIFS_DEBUG2 is enabled in the | ||
659 | kernel configuration. cifsFYI may be set to one or | ||
660 | nore of the following flags (7 sets them all): | ||
661 | |||
662 | log cifs informational messages 0x01 | ||
663 | log return codes from cifs entry points 0x02 | ||
664 | log slow responses (ie which take longer than 1 second) | ||
665 | CONFIG_CIFS_STATS2 must be enabled in .config 0x04 | ||
666 | |||
667 | |||
668 | traceSMB If set to one, debug information is logged to the | ||
669 | system error log with the start of smb requests | ||
670 | and responses (default 0) | ||
671 | LookupCacheEnable If set to one, inode information is kept cached | ||
672 | for one second improving performance of lookups | ||
673 | (default 1) | ||
674 | OplockEnabled If set to one, safe distributed caching enabled. | ||
675 | (default 1) | ||
676 | LinuxExtensionsEnabled If set to one then the client will attempt to | ||
677 | use the CIFS "UNIX" extensions which are optional | ||
678 | protocol enhancements that allow CIFS servers | ||
679 | to return accurate UID/GID information as well | ||
680 | as support symbolic links. If you use servers | ||
681 | such as Samba that support the CIFS Unix | ||
682 | extensions but do not want to use symbolic link | ||
683 | support and want to map the uid and gid fields | ||
684 | to values supplied at mount (rather than the | ||
685 | actual values, then set this to zero. (default 1) | ||
686 | |||
687 | These experimental features and tracing can be enabled by changing flags in | ||
688 | /proc/fs/cifs (after the cifs module has been installed or built into the | ||
689 | kernel, e.g. insmod cifs). To enable a feature set it to 1 e.g. to enable | ||
690 | tracing to the kernel message log type: | ||
691 | |||
692 | echo 7 > /proc/fs/cifs/cifsFYI | ||
693 | |||
694 | cifsFYI functions as a bit mask. Setting it to 1 enables additional kernel | ||
695 | logging of various informational messages. 2 enables logging of non-zero | ||
696 | SMB return codes while 4 enables logging of requests that take longer | ||
697 | than one second to complete (except for byte range lock requests). | ||
698 | Setting it to 4 requires defining CONFIG_CIFS_STATS2 manually in the | ||
699 | source code (typically by setting it in the beginning of cifsglob.h), | ||
700 | and setting it to seven enables all three. Finally, tracing | ||
701 | the start of smb requests and responses can be enabled via: | ||
702 | |||
703 | echo 1 > /proc/fs/cifs/traceSMB | ||
704 | |||
705 | Per share (per client mount) statistics are available in /proc/fs/cifs/Stats | ||
706 | if the kernel was configured with cifs statistics enabled. The statistics | ||
707 | represent the number of successful (ie non-zero return code from the server) | ||
708 | SMB responses to some of the more common commands (open, delete, mkdir etc.). | ||
709 | Also recorded is the total bytes read and bytes written to the server for | ||
710 | that share. Note that due to client caching effects this can be less than the | ||
711 | number of bytes read and written by the application running on the client. | ||
712 | The statistics for the number of total SMBs and oplock breaks are different in | ||
713 | that they represent all for that share, not just those for which the server | ||
714 | returned success. | ||
715 | |||
716 | Also note that "cat /proc/fs/cifs/DebugData" will display information about | ||
717 | the active sessions and the shares that are mounted. | ||
718 | |||
719 | Enabling Kerberos (extended security) works but requires version 1.2 or later | ||
720 | of the helper program cifs.upcall to be present and to be configured in the | ||
721 | /etc/request-key.conf file. The cifs.upcall helper program is from the Samba | ||
722 | project(http://www.samba.org). NTLM and NTLMv2 and LANMAN support do not | ||
723 | require this helper. Note that NTLMv2 security (which does not require the | ||
724 | cifs.upcall helper program), instead of using Kerberos, is sufficient for | ||
725 | some use cases. | ||
726 | |||
727 | DFS support allows transparent redirection to shares in an MS-DFS name space. | ||
728 | In addition, DFS support for target shares which are specified as UNC | ||
729 | names which begin with host names (rather than IP addresses) requires | ||
730 | a user space helper (such as cifs.upcall) to be present in order to | ||
731 | translate host names to ip address, and the user space helper must also | ||
732 | be configured in the file /etc/request-key.conf. Samba, Windows servers and | ||
733 | many NAS appliances support DFS as a way of constructing a global name | ||
734 | space to ease network configuration and improve reliability. | ||
735 | |||
736 | To use cifs Kerberos and DFS support, the Linux keyutils package should be | ||
737 | installed and something like the following lines should be added to the | ||
738 | /etc/request-key.conf file: | ||
739 | |||
740 | create cifs.spnego * * /usr/local/sbin/cifs.upcall %k | ||
741 | create dns_resolver * * /usr/local/sbin/cifs.upcall %k | ||
742 | |||
743 | CIFS kernel module parameters | ||
744 | ============================= | ||
745 | These module parameters can be specified or modified either during the time of | ||
746 | module loading or during the runtime by using the interface | ||
747 | /proc/module/cifs/parameters/<param> | ||
748 | |||
749 | i.e. echo "value" > /sys/module/cifs/parameters/<param> | ||
750 | |||
751 | 1. enable_oplocks - Enable or disable oplocks. Oplocks are enabled by default. | ||
752 | [Y/y/1]. To disable use any of [N/n/0]. | ||
753 | |||
diff --git a/fs/cifs/TODO b/fs/cifs/TODO deleted file mode 100644 index 355abcdcda98..000000000000 --- a/fs/cifs/TODO +++ /dev/null | |||
@@ -1,129 +0,0 @@ | |||
1 | Version 1.53 May 20, 2008 | ||
2 | |||
3 | A Partial List of Missing Features | ||
4 | ================================== | ||
5 | |||
6 | Contributions are welcome. There are plenty of opportunities | ||
7 | for visible, important contributions to this module. Here | ||
8 | is a partial list of the known problems and missing features: | ||
9 | |||
10 | a) Support for SecurityDescriptors(Windows/CIFS ACLs) for chmod/chgrp/chown | ||
11 | so that these operations can be supported to Windows servers | ||
12 | |||
13 | b) Mapping POSIX ACLs (and eventually NFSv4 ACLs) to CIFS | ||
14 | SecurityDescriptors | ||
15 | |||
16 | c) Better pam/winbind integration (e.g. to handle uid mapping | ||
17 | better) | ||
18 | |||
19 | d) Cleanup now unneeded SessSetup code in | ||
20 | fs/cifs/connect.c and add back in NTLMSSP code if any servers | ||
21 | need it | ||
22 | |||
23 | e) fix NTLMv2 signing when two mounts with different users to same | ||
24 | server. | ||
25 | |||
26 | f) Directory entry caching relies on a 1 second timer, rather than | ||
27 | using FindNotify or equivalent. - (started) | ||
28 | |||
29 | g) quota support (needs minor kernel change since quota calls | ||
30 | to make it to network filesystems or deviceless filesystems) | ||
31 | |||
32 | h) investigate sync behavior (including syncpage) and check | ||
33 | for proper behavior of intr/nointr | ||
34 | |||
35 | i) improve support for very old servers (OS/2 and Win9x for example) | ||
36 | Including support for changing the time remotely (utimes command). | ||
37 | |||
38 | j) hook lower into the sockets api (as NFS/SunRPC does) to avoid the | ||
39 | extra copy in/out of the socket buffers in some cases. | ||
40 | |||
41 | k) Better optimize open (and pathbased setfilesize) to reduce the | ||
42 | oplock breaks coming from windows srv. Piggyback identical file | ||
43 | opens on top of each other by incrementing reference count rather | ||
44 | than resending (helps reduce server resource utilization and avoid | ||
45 | spurious oplock breaks). | ||
46 | |||
47 | l) Improve performance of readpages by sending more than one read | ||
48 | at a time when 8 pages or more are requested. In conjuntion | ||
49 | add support for async_cifs_readpages. | ||
50 | |||
51 | m) Add support for storing symlink info to Windows servers | ||
52 | in the Extended Attribute format their SFU clients would recognize. | ||
53 | |||
54 | n) Finish fcntl D_NOTIFY support so kde and gnome file list windows | ||
55 | will autorefresh (partially complete by Asser). Needs minor kernel | ||
56 | vfs change to support removing D_NOTIFY on a file. | ||
57 | |||
58 | o) Add GUI tool to configure /proc/fs/cifs settings and for display of | ||
59 | the CIFS statistics (started) | ||
60 | |||
61 | p) implement support for security and trusted categories of xattrs | ||
62 | (requires minor protocol extension) to enable better support for SELINUX | ||
63 | |||
64 | q) Implement O_DIRECT flag on open (already supported on mount) | ||
65 | |||
66 | r) Create UID mapping facility so server UIDs can be mapped on a per | ||
67 | mount or a per server basis to client UIDs or nobody if no mapping | ||
68 | exists. This is helpful when Unix extensions are negotiated to | ||
69 | allow better permission checking when UIDs differ on the server | ||
70 | and client. Add new protocol request to the CIFS protocol | ||
71 | standard for asking the server for the corresponding name of a | ||
72 | particular uid. | ||
73 | |||
74 | s) Add support for CIFS Unix and also the newer POSIX extensions to the | ||
75 | server side for Samba 4. | ||
76 | |||
77 | t) In support for OS/2 (LANMAN 1.2 and LANMAN2.1 based SMB servers) | ||
78 | need to add ability to set time to server (utimes command) | ||
79 | |||
80 | u) DOS attrs - returned as pseudo-xattr in Samba format (check VFAT and NTFS for this too) | ||
81 | |||
82 | v) mount check for unmatched uids | ||
83 | |||
84 | w) Add support for new vfs entry point for fallocate | ||
85 | |||
86 | x) Fix Samba 3 server to handle Linux kernel aio so dbench with lots of | ||
87 | processes can proceed better in parallel (on the server) | ||
88 | |||
89 | y) Fix Samba 3 to handle reads/writes over 127K (and remove the cifs mount | ||
90 | restriction of wsize max being 127K) | ||
91 | |||
92 | KNOWN BUGS (updated April 24, 2007) | ||
93 | ==================================== | ||
94 | See http://bugzilla.samba.org - search on product "CifsVFS" for | ||
95 | current bug list. | ||
96 | |||
97 | 1) existing symbolic links (Windows reparse points) are recognized but | ||
98 | can not be created remotely. They are implemented for Samba and those that | ||
99 | support the CIFS Unix extensions, although earlier versions of Samba | ||
100 | overly restrict the pathnames. | ||
101 | 2) follow_link and readdir code does not follow dfs junctions | ||
102 | but recognizes them | ||
103 | 3) create of new files to FAT partitions on Windows servers can | ||
104 | succeed but still return access denied (appears to be Windows | ||
105 | server not cifs client problem) and has not been reproduced recently. | ||
106 | NTFS partitions do not have this problem. | ||
107 | 4) Unix/POSIX capabilities are reset after reconnection, and affect | ||
108 | a few fields in the tree connection but we do do not know which | ||
109 | superblocks to apply these changes to. We should probably walk | ||
110 | the list of superblocks to set these. Also need to check the | ||
111 | flags on the second mount to the same share, and see if we | ||
112 | can do the same trick that NFS does to remount duplicate shares. | ||
113 | |||
114 | Misc testing to do | ||
115 | ================== | ||
116 | 1) check out max path names and max path name components against various server | ||
117 | types. Try nested symlinks (8 deep). Return max path name in stat -f information | ||
118 | |||
119 | 2) Modify file portion of ltp so it can run against a mounted network | ||
120 | share and run it against cifs vfs in automated fashion. | ||
121 | |||
122 | 3) Additional performance testing and optimization using iozone and similar - | ||
123 | there are some easy changes that can be done to parallelize sequential writes, | ||
124 | and when signing is disabled to request larger read sizes (larger than | ||
125 | negotiated size) and send larger write sizes to modern servers. | ||
126 | |||
127 | 4) More exhaustively test against less common servers. More testing | ||
128 | against Windows 9x, Windows ME servers. | ||
129 | |||