diff options
Diffstat (limited to 'Documentation/filesystems')
21 files changed, 2207 insertions, 86 deletions
diff --git a/Documentation/filesystems/btrfs.txt b/Documentation/filesystems/btrfs.txt index b349d57b76ea..9dae59407437 100644 --- a/Documentation/filesystems/btrfs.txt +++ b/Documentation/filesystems/btrfs.txt | |||
| @@ -87,7 +87,7 @@ Unless otherwise specified, all options default to off. | |||
| 87 | 87 | ||
| 88 | device=<devicepath> | 88 | device=<devicepath> |
| 89 | Specify a device during mount so that ioctls on the control device | 89 | Specify a device during mount so that ioctls on the control device |
| 90 | can be avoided. Especialy useful when trying to mount a multi-device | 90 | can be avoided. Especially useful when trying to mount a multi-device |
| 91 | setup as root. May be specified multiple times for multiple devices. | 91 | setup as root. May be specified multiple times for multiple devices. |
| 92 | 92 | ||
| 93 | discard | 93 | discard |
diff --git a/Documentation/filesystems/cifs.txt b/Documentation/filesystems/cifs.txt deleted file mode 100644 index 49cc923a93e3..000000000000 --- a/Documentation/filesystems/cifs.txt +++ /dev/null | |||
| @@ -1,51 +0,0 @@ | |||
| 1 | This is the client VFS module for the Common Internet File System | ||
| 2 | (CIFS) protocol which is the successor to the Server Message Block | ||
| 3 | (SMB) protocol, the native file sharing mechanism for most early | ||
| 4 | PC operating systems. CIFS is fully supported by current network | ||
| 5 | file servers such as Windows 2000, Windows 2003 (including | ||
| 6 | Windows XP) as well by Samba (which provides excellent CIFS | ||
| 7 | server support for Linux and many other operating systems), so | ||
| 8 | this network filesystem client can mount to a wide variety of | ||
| 9 | servers. The smbfs module should be used instead of this cifs module | ||
| 10 | for mounting to older SMB servers such as OS/2. The smbfs and cifs | ||
| 11 | modules can coexist and do not conflict. The CIFS VFS filesystem | ||
| 12 | module is designed to work well with servers that implement the | ||
| 13 | newer versions (dialects) of the SMB/CIFS protocol such as Samba, | ||
| 14 | the program written by Andrew Tridgell that turns any Unix host | ||
| 15 | into a SMB/CIFS file server. | ||
| 16 | |||
| 17 | The intent of this module is to provide the most advanced network | ||
| 18 | file system function for CIFS compliant servers, including better | ||
| 19 | POSIX compliance, secure per-user session establishment, high | ||
| 20 | performance safe distributed caching (oplock), optional packet | ||
| 21 | signing, large files, Unicode support and other internationalization | ||
| 22 | improvements. Since both Samba server and this filesystem client support | ||
| 23 | the CIFS Unix extensions, the combination can provide a reasonable | ||
| 24 | alternative to NFSv4 for fileserving in some Linux to Linux environments, | ||
| 25 | not just in Linux to Windows environments. | ||
| 26 | |||
| 27 | This filesystem has an optional mount utility (mount.cifs) that can | ||
| 28 | be obtained from the project page and installed in the path in the same | ||
| 29 | directory with the other mount helpers (such as mount.smbfs). | ||
| 30 | Mounting using the cifs filesystem without installing the mount helper | ||
| 31 | requires specifying the server's ip address. | ||
| 32 | |||
| 33 | For Linux 2.4: | ||
| 34 | mount //anything/here /mnt_target -o | ||
| 35 | user=username,pass=password,unc=//ip_address_of_server/sharename | ||
| 36 | |||
| 37 | For Linux 2.5: | ||
| 38 | mount //ip_address_of_server/sharename /mnt_target -o user=username, pass=password | ||
| 39 | |||
| 40 | |||
| 41 | For more information on the module see the project page at | ||
| 42 | |||
| 43 | http://us1.samba.org/samba/Linux_CIFS_client.html | ||
| 44 | |||
| 45 | For more information on CIFS see: | ||
| 46 | |||
| 47 | http://www.snia.org/tech_activities/CIFS | ||
| 48 | |||
| 49 | or the Samba site: | ||
| 50 | |||
| 51 | http://www.samba.org | ||
diff --git a/Documentation/filesystems/cifs/AUTHORS b/Documentation/filesystems/cifs/AUTHORS new file mode 100644 index 000000000000..ca4a67a0bb1e --- /dev/null +++ b/Documentation/filesystems/cifs/AUTHORS | |||
| @@ -0,0 +1,56 @@ | |||
| 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 | Scott Lovenberg | ||
| 43 | |||
| 44 | Test case and Bug Report contributors | ||
| 45 | ------------------------------------- | ||
| 46 | Thanks to those in the community who have submitted detailed bug reports | ||
| 47 | and debug of problems they have found: Jochen Dolze, David Blaine, | ||
| 48 | Rene Scharfe, Martin Josefsson, Alexander Wild, Anthony Liguori, | ||
| 49 | Lars Muller, Urban Widmark, Massimiliano Ferrero, Howard Owen, | ||
| 50 | Olaf Kirch, Kieron Briggs, Nick Millington and others. Also special | ||
| 51 | mention to the Stanford Checker (SWAT) which pointed out many minor | ||
| 52 | bugs in error paths. Valuable suggestions also have come from Al Viro | ||
| 53 | and Dave Miller. | ||
| 54 | |||
| 55 | And thanks to the IBM LTC and Power test teams and SuSE testers for | ||
| 56 | finding multiple bugs during excellent stress test runs. | ||
diff --git a/Documentation/filesystems/cifs/CHANGES b/Documentation/filesystems/cifs/CHANGES new file mode 100644 index 000000000000..bc0025cdd1c9 --- /dev/null +++ b/Documentation/filesystems/cifs/CHANGES | |||
| @@ -0,0 +1,1065 @@ | |||
| 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/Documentation/filesystems/cifs/README b/Documentation/filesystems/cifs/README new file mode 100644 index 000000000000..2d5622f60e11 --- /dev/null +++ b/Documentation/filesystems/cifs/README | |||
| @@ -0,0 +1,753 @@ | |||
| 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/Documentation/filesystems/cifs/TODO b/Documentation/filesystems/cifs/TODO new file mode 100644 index 000000000000..355abcdcda98 --- /dev/null +++ b/Documentation/filesystems/cifs/TODO | |||
| @@ -0,0 +1,129 @@ | |||
| 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 | |||
diff --git a/Documentation/filesystems/cifs/cifs.txt b/Documentation/filesystems/cifs/cifs.txt new file mode 100644 index 000000000000..2fac91ac96cf --- /dev/null +++ b/Documentation/filesystems/cifs/cifs.txt | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | This is the client VFS module for the Common Internet File System | ||
| 2 | (CIFS) protocol which is the successor to the Server Message Block | ||
| 3 | (SMB) protocol, the native file sharing mechanism for most early | ||
| 4 | PC operating systems. New and improved versions of CIFS are now | ||
| 5 | called SMB2 and SMB3. These dialects are also supported by the | ||
| 6 | CIFS VFS module. CIFS is fully supported by network | ||
| 7 | file servers such as Windows 2000, 2003, 2008 and 2012 | ||
| 8 | as well by Samba (which provides excellent CIFS | ||
| 9 | server support for Linux and many other operating systems), so | ||
| 10 | this network filesystem client can mount to a wide variety of | ||
| 11 | servers. | ||
| 12 | |||
| 13 | The intent of this module is to provide the most advanced network | ||
| 14 | file system function for CIFS compliant servers, including better | ||
| 15 | POSIX compliance, secure per-user session establishment, high | ||
| 16 | performance safe distributed caching (oplock), optional packet | ||
| 17 | signing, large files, Unicode support and other internationalization | ||
| 18 | improvements. Since both Samba server and this filesystem client support | ||
| 19 | the CIFS Unix extensions, the combination can provide a reasonable | ||
| 20 | alternative to NFSv4 for fileserving in some Linux to Linux environments, | ||
| 21 | not just in Linux to Windows environments. | ||
| 22 | |||
| 23 | This filesystem has an mount utility (mount.cifs) that can be obtained from | ||
| 24 | |||
| 25 | https://ftp.samba.org/pub/linux-cifs/cifs-utils/ | ||
| 26 | |||
| 27 | It must be installed in the directory with the other mount helpers. | ||
| 28 | |||
| 29 | For more information on the module see the project wiki page at | ||
| 30 | |||
| 31 | https://wiki.samba.org/index.php/LinuxCIFS_utils | ||
diff --git a/Documentation/filesystems/cifs/winucase_convert.pl b/Documentation/filesystems/cifs/winucase_convert.pl new file mode 100755 index 000000000000..322a9c833f23 --- /dev/null +++ b/Documentation/filesystems/cifs/winucase_convert.pl | |||
| @@ -0,0 +1,62 @@ | |||
| 1 | #!/usr/bin/perl -w | ||
| 2 | # | ||
| 3 | # winucase_convert.pl -- convert "Windows 8 Upper Case Mapping Table.txt" to | ||
| 4 | # a two-level set of C arrays. | ||
| 5 | # | ||
| 6 | # Copyright 2013: Jeff Layton <jlayton@redhat.com> | ||
| 7 | # | ||
| 8 | # This program is free software: you can redistribute it and/or modify | ||
| 9 | # it under the terms of the GNU General Public License as published by | ||
| 10 | # the Free Software Foundation, either version 3 of the License, or | ||
| 11 | # (at your option) any later version. | ||
| 12 | # | ||
| 13 | # This program is distributed in the hope that it will be useful, | ||
| 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 16 | # GNU General Public License for more details. | ||
| 17 | # | ||
| 18 | # You should have received a copy of the GNU General Public License | ||
| 19 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 20 | # | ||
| 21 | |||
| 22 | while(<>) { | ||
| 23 | next if (!/^0x(..)(..)\t0x(....)\t/); | ||
| 24 | $firstchar = hex($1); | ||
| 25 | $secondchar = hex($2); | ||
| 26 | $uppercase = hex($3); | ||
| 27 | |||
| 28 | $top[$firstchar][$secondchar] = $uppercase; | ||
| 29 | } | ||
| 30 | |||
| 31 | for ($i = 0; $i < 256; $i++) { | ||
| 32 | next if (!$top[$i]); | ||
| 33 | |||
| 34 | printf("static const wchar_t t2_%2.2x[256] = {", $i); | ||
| 35 | for ($j = 0; $j < 256; $j++) { | ||
| 36 | if (($j % 8) == 0) { | ||
| 37 | print "\n\t"; | ||
| 38 | } else { | ||
| 39 | print " "; | ||
| 40 | } | ||
| 41 | printf("0x%4.4x,", $top[$i][$j] ? $top[$i][$j] : 0); | ||
| 42 | } | ||
| 43 | print "\n};\n\n"; | ||
| 44 | } | ||
| 45 | |||
| 46 | printf("static const wchar_t *const toplevel[256] = {", $i); | ||
| 47 | for ($i = 0; $i < 256; $i++) { | ||
| 48 | if (($i % 8) == 0) { | ||
| 49 | print "\n\t"; | ||
| 50 | } elsif ($top[$i]) { | ||
| 51 | print " "; | ||
| 52 | } else { | ||
| 53 | print " "; | ||
| 54 | } | ||
| 55 | |||
| 56 | if ($top[$i]) { | ||
| 57 | printf("t2_%2.2x,", $i); | ||
| 58 | } else { | ||
| 59 | print "NULL,"; | ||
| 60 | } | ||
| 61 | } | ||
| 62 | print "\n};\n\n"; | ||
diff --git a/Documentation/filesystems/ext3.txt b/Documentation/filesystems/ext3.txt index 293855e95000..7ed0d17d6721 100644 --- a/Documentation/filesystems/ext3.txt +++ b/Documentation/filesystems/ext3.txt | |||
| @@ -26,11 +26,12 @@ journal=inum When a journal already exists, this option is ignored. | |||
| 26 | Otherwise, it specifies the number of the inode which | 26 | Otherwise, it specifies the number of the inode which |
| 27 | will represent the ext3 file system's journal file. | 27 | will represent the ext3 file system's journal file. |
| 28 | 28 | ||
| 29 | journal_path=path | ||
| 29 | journal_dev=devnum When the external journal device's major/minor numbers | 30 | journal_dev=devnum When the external journal device's major/minor numbers |
| 30 | have changed, this option allows the user to specify | 31 | have changed, these options allow the user to specify |
| 31 | the new journal location. The journal device is | 32 | the new journal location. The journal device is |
| 32 | identified through its new major/minor numbers encoded | 33 | identified through either its new major/minor numbers |
| 33 | in devnum. | 34 | encoded in devnum, or via a path to the device. |
| 34 | 35 | ||
| 35 | norecovery Don't load the journal on mounting. Note that this forces | 36 | norecovery Don't load the journal on mounting. Note that this forces |
| 36 | noload mount of inconsistent filesystem, which can lead to | 37 | noload mount of inconsistent filesystem, which can lead to |
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt index f7cbf574a875..919a3293aaa4 100644 --- a/Documentation/filesystems/ext4.txt +++ b/Documentation/filesystems/ext4.txt | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | Ext4 Filesystem | 2 | Ext4 Filesystem |
| 3 | =============== | 3 | =============== |
| 4 | 4 | ||
| 5 | Ext4 is an an advanced level of the ext3 filesystem which incorporates | 5 | Ext4 is an advanced level of the ext3 filesystem which incorporates |
| 6 | scalability and reliability enhancements for supporting large filesystems | 6 | scalability and reliability enhancements for supporting large filesystems |
| 7 | (64 bit) in keeping with increasing disk capacities and state-of-the-art | 7 | (64 bit) in keeping with increasing disk capacities and state-of-the-art |
| 8 | feature requirements. | 8 | feature requirements. |
| @@ -144,11 +144,12 @@ journal_async_commit Commit block can be written to disk without waiting | |||
| 144 | mount the device. This will enable 'journal_checksum' | 144 | mount the device. This will enable 'journal_checksum' |
| 145 | internally. | 145 | internally. |
| 146 | 146 | ||
| 147 | journal_path=path | ||
| 147 | journal_dev=devnum When the external journal device's major/minor numbers | 148 | journal_dev=devnum When the external journal device's major/minor numbers |
| 148 | have changed, this option allows the user to specify | 149 | have changed, these options allow the user to specify |
| 149 | the new journal location. The journal device is | 150 | the new journal location. The journal device is |
| 150 | identified through its new major/minor numbers encoded | 151 | identified through either its new major/minor numbers |
| 151 | in devnum. | 152 | encoded in devnum, or via a path to the device. |
| 152 | 153 | ||
| 153 | norecovery Don't load the journal on mounting. Note that | 154 | norecovery Don't load the journal on mounting. Note that |
| 154 | noload if the filesystem was not unmounted cleanly, | 155 | noload if the filesystem was not unmounted cleanly, |
diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt index b91e2f26b672..3cd27bed6349 100644 --- a/Documentation/filesystems/f2fs.txt +++ b/Documentation/filesystems/f2fs.txt | |||
| @@ -18,8 +18,8 @@ according to its internal geometry or flash memory management scheme, namely FTL | |||
| 18 | F2FS and its tools support various parameters not only for configuring on-disk | 18 | F2FS and its tools support various parameters not only for configuring on-disk |
| 19 | layout, but also for selecting allocation and cleaning algorithms. | 19 | layout, but also for selecting allocation and cleaning algorithms. |
| 20 | 20 | ||
| 21 | The file system formatting tool, "mkfs.f2fs", is available from the following | 21 | The following git tree provides the file system formatting tool (mkfs.f2fs), |
| 22 | git tree: | 22 | a consistency checking tool (fsck.f2fs), and a debugging tool (dump.f2fs). |
| 23 | >> git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git | 23 | >> git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git |
| 24 | 24 | ||
| 25 | For reporting bugs and sending patches, please use the following mailing list: | 25 | For reporting bugs and sending patches, please use the following mailing list: |
| @@ -133,6 +133,38 @@ f2fs. Each file shows the whole f2fs information. | |||
| 133 | - current memory footprint consumed by f2fs. | 133 | - current memory footprint consumed by f2fs. |
| 134 | 134 | ||
| 135 | ================================================================================ | 135 | ================================================================================ |
| 136 | SYSFS ENTRIES | ||
| 137 | ================================================================================ | ||
| 138 | |||
| 139 | Information about mounted f2f2 file systems can be found in | ||
| 140 | /sys/fs/f2fs. Each mounted filesystem will have a directory in | ||
| 141 | /sys/fs/f2fs based on its device name (i.e., /sys/fs/f2fs/sda). | ||
| 142 | The files in each per-device directory are shown in table below. | ||
| 143 | |||
| 144 | Files in /sys/fs/f2fs/<devname> | ||
| 145 | (see also Documentation/ABI/testing/sysfs-fs-f2fs) | ||
| 146 | .............................................................................. | ||
| 147 | File Content | ||
| 148 | |||
| 149 | gc_max_sleep_time This tuning parameter controls the maximum sleep | ||
| 150 | time for the garbage collection thread. Time is | ||
| 151 | in milliseconds. | ||
| 152 | |||
| 153 | gc_min_sleep_time This tuning parameter controls the minimum sleep | ||
| 154 | time for the garbage collection thread. Time is | ||
| 155 | in milliseconds. | ||
| 156 | |||
| 157 | gc_no_gc_sleep_time This tuning parameter controls the default sleep | ||
| 158 | time for the garbage collection thread. Time is | ||
| 159 | in milliseconds. | ||
| 160 | |||
| 161 | gc_idle This parameter controls the selection of victim | ||
| 162 | policy for garbage collection. Setting gc_idle = 0 | ||
| 163 | (default) will disable this option. Setting | ||
| 164 | gc_idle = 1 will select the Cost Benefit approach | ||
| 165 | & setting gc_idle = 2 will select the greedy aproach. | ||
| 166 | |||
| 167 | ================================================================================ | ||
| 136 | USAGE | 168 | USAGE |
| 137 | ================================================================================ | 169 | ================================================================================ |
| 138 | 170 | ||
| @@ -149,8 +181,12 @@ USAGE | |||
| 149 | # mkfs.f2fs -l label /dev/block_device | 181 | # mkfs.f2fs -l label /dev/block_device |
| 150 | # mount -t f2fs /dev/block_device /mnt/f2fs | 182 | # mount -t f2fs /dev/block_device /mnt/f2fs |
| 151 | 183 | ||
| 152 | Format options | 184 | mkfs.f2fs |
| 153 | -------------- | 185 | --------- |
| 186 | The mkfs.f2fs is for the use of formatting a partition as the f2fs filesystem, | ||
| 187 | which builds a basic on-disk layout. | ||
| 188 | |||
| 189 | The options consist of: | ||
| 154 | -l [label] : Give a volume label, up to 512 unicode name. | 190 | -l [label] : Give a volume label, up to 512 unicode name. |
| 155 | -a [0 or 1] : Split start location of each area for heap-based allocation. | 191 | -a [0 or 1] : Split start location of each area for heap-based allocation. |
| 156 | 1 is set by default, which performs this. | 192 | 1 is set by default, which performs this. |
| @@ -164,6 +200,37 @@ Format options | |||
| 164 | -t [0 or 1] : Disable discard command or not. | 200 | -t [0 or 1] : Disable discard command or not. |
| 165 | 1 is set by default, which conducts discard. | 201 | 1 is set by default, which conducts discard. |
| 166 | 202 | ||
| 203 | fsck.f2fs | ||
| 204 | --------- | ||
| 205 | The fsck.f2fs is a tool to check the consistency of an f2fs-formatted | ||
| 206 | partition, which examines whether the filesystem metadata and user-made data | ||
| 207 | are cross-referenced correctly or not. | ||
| 208 | Note that, initial version of the tool does not fix any inconsistency. | ||
| 209 | |||
| 210 | The options consist of: | ||
| 211 | -d debug level [default:0] | ||
| 212 | |||
| 213 | dump.f2fs | ||
| 214 | --------- | ||
| 215 | The dump.f2fs shows the information of specific inode and dumps SSA and SIT to | ||
| 216 | file. Each file is dump_ssa and dump_sit. | ||
| 217 | |||
| 218 | The dump.f2fs is used to debug on-disk data structures of the f2fs filesystem. | ||
| 219 | It shows on-disk inode information reconized by a given inode number, and is | ||
| 220 | able to dump all the SSA and SIT entries into predefined files, ./dump_ssa and | ||
| 221 | ./dump_sit respectively. | ||
| 222 | |||
| 223 | The options consist of: | ||
| 224 | -d debug level [default:0] | ||
| 225 | -i inode no (hex) | ||
| 226 | -s [SIT dump segno from #1~#2 (decimal), for all 0~-1] | ||
| 227 | -a [SSA dump segno from #1~#2 (decimal), for all 0~-1] | ||
| 228 | |||
| 229 | Examples: | ||
| 230 | # dump.f2fs -i [ino] /dev/sdx | ||
| 231 | # dump.f2fs -s 0~-1 /dev/sdx (SIT dump) | ||
| 232 | # dump.f2fs -a 0~-1 /dev/sdx (SSA dump) | ||
| 233 | |||
| 167 | ================================================================================ | 234 | ================================================================================ |
| 168 | DESIGN | 235 | DESIGN |
| 169 | ================================================================================ | 236 | ================================================================================ |
diff --git a/Documentation/filesystems/nfs/Exporting b/Documentation/filesystems/nfs/Exporting index 09994c247289..e543b1a619cc 100644 --- a/Documentation/filesystems/nfs/Exporting +++ b/Documentation/filesystems/nfs/Exporting | |||
| @@ -93,7 +93,7 @@ For a filesystem to be exportable it must: | |||
| 93 | 2/ make sure that d_splice_alias is used rather than d_add | 93 | 2/ make sure that d_splice_alias is used rather than d_add |
| 94 | when ->lookup finds an inode for a given parent and name. | 94 | when ->lookup finds an inode for a given parent and name. |
| 95 | 95 | ||
| 96 | If inode is NULL, d_splice_alias(inode, dentry) is eqivalent to | 96 | If inode is NULL, d_splice_alias(inode, dentry) is equivalent to |
| 97 | 97 | ||
| 98 | d_add(dentry, inode), NULL | 98 | d_add(dentry, inode), NULL |
| 99 | 99 | ||
diff --git a/Documentation/filesystems/nfs/pnfs.txt b/Documentation/filesystems/nfs/pnfs.txt index 52ae07f5f578..adc81a35fe2d 100644 --- a/Documentation/filesystems/nfs/pnfs.txt +++ b/Documentation/filesystems/nfs/pnfs.txt | |||
| @@ -12,7 +12,7 @@ struct pnfs_layout_hdr | |||
| 12 | ---------------------- | 12 | ---------------------- |
| 13 | The on-the-wire command LAYOUTGET corresponds to struct | 13 | The on-the-wire command LAYOUTGET corresponds to struct |
| 14 | pnfs_layout_segment, usually referred to by the variable name lseg. | 14 | pnfs_layout_segment, usually referred to by the variable name lseg. |
| 15 | Each nfs_inode may hold a pointer to a cache of of these layout | 15 | Each nfs_inode may hold a pointer to a cache of these layout |
| 16 | segments in nfsi->layout, of type struct pnfs_layout_hdr. | 16 | segments in nfsi->layout, of type struct pnfs_layout_hdr. |
| 17 | 17 | ||
| 18 | We reference the header for the inode pointing to it, across each | 18 | We reference the header for the inode pointing to it, across each |
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting index 206a1bdc7321..f0890581f7f6 100644 --- a/Documentation/filesystems/porting +++ b/Documentation/filesystems/porting | |||
| @@ -451,3 +451,7 @@ in your dentry operations instead. | |||
| 451 | -- | 451 | -- |
| 452 | [mandatory] | 452 | [mandatory] |
| 453 | ->readdir() is gone now; switch to ->iterate() | 453 | ->readdir() is gone now; switch to ->iterate() |
| 454 | [mandatory] | ||
| 455 | vfs_follow_link has been removed. Filesystems must use nd_set_link | ||
| 456 | from ->follow_link for normal symlinks, or nd_jump_link for magic | ||
| 457 | /proc/<pid> style links. | ||
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index fcc22c982a25..823c95faebd2 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
| @@ -854,16 +854,15 @@ Committed_AS: The amount of memory presently allocated on the system. | |||
| 854 | The committed memory is a sum of all of the memory which | 854 | The committed memory is a sum of all of the memory which |
| 855 | has been allocated by processes, even if it has not been | 855 | has been allocated by processes, even if it has not been |
| 856 | "used" by them as of yet. A process which malloc()'s 1G | 856 | "used" by them as of yet. A process which malloc()'s 1G |
| 857 | of memory, but only touches 300M of it will only show up | 857 | of memory, but only touches 300M of it will show up as |
| 858 | as using 300M of memory even if it has the address space | 858 | using 1G. This 1G is memory which has been "committed" to |
| 859 | allocated for the entire 1G. This 1G is memory which has | 859 | by the VM and can be used at any time by the allocating |
| 860 | been "committed" to by the VM and can be used at any time | 860 | application. With strict overcommit enabled on the system |
| 861 | by the allocating application. With strict overcommit | 861 | (mode 2 in 'vm.overcommit_memory'),allocations which would |
| 862 | enabled on the system (mode 2 in 'vm.overcommit_memory'), | 862 | exceed the CommitLimit (detailed above) will not be permitted. |
| 863 | allocations which would exceed the CommitLimit (detailed | 863 | This is useful if one needs to guarantee that processes will |
| 864 | above) will not be permitted. This is useful if one needs | 864 | not fail due to lack of memory once that memory has been |
| 865 | to guarantee that processes will not fail due to lack of | 865 | successfully allocated. |
| 866 | memory once that memory has been successfully allocated. | ||
| 867 | VmallocTotal: total size of vmalloc memory area | 866 | VmallocTotal: total size of vmalloc memory area |
| 868 | VmallocUsed: amount of vmalloc area which is used | 867 | VmallocUsed: amount of vmalloc area which is used |
| 869 | VmallocChunk: largest contiguous block of vmalloc area which is free | 868 | VmallocChunk: largest contiguous block of vmalloc area which is free |
diff --git a/Documentation/filesystems/qnx6.txt b/Documentation/filesystems/qnx6.txt index 99e90184a72f..408679789136 100644 --- a/Documentation/filesystems/qnx6.txt +++ b/Documentation/filesystems/qnx6.txt | |||
| @@ -149,7 +149,7 @@ Bitmap system area | |||
| 149 | ------------------ | 149 | ------------------ |
| 150 | 150 | ||
| 151 | The bitmap itself is divided into three parts. | 151 | The bitmap itself is divided into three parts. |
| 152 | First the system area, that is split into two halfs. | 152 | First the system area, that is split into two halves. |
| 153 | Then userspace. | 153 | Then userspace. |
| 154 | 154 | ||
| 155 | The requirement for a static, fixed preallocated system area comes from how | 155 | The requirement for a static, fixed preallocated system area comes from how |
diff --git a/Documentation/filesystems/ramfs-rootfs-initramfs.txt b/Documentation/filesystems/ramfs-rootfs-initramfs.txt index 59b4a0962e0f..b176928e6963 100644 --- a/Documentation/filesystems/ramfs-rootfs-initramfs.txt +++ b/Documentation/filesystems/ramfs-rootfs-initramfs.txt | |||
| @@ -79,6 +79,10 @@ to just make sure certain lists can't become empty. | |||
| 79 | Most systems just mount another filesystem over rootfs and ignore it. The | 79 | Most systems just mount another filesystem over rootfs and ignore it. The |
| 80 | amount of space an empty instance of ramfs takes up is tiny. | 80 | amount of space an empty instance of ramfs takes up is tiny. |
| 81 | 81 | ||
| 82 | If CONFIG_TMPFS is enabled, rootfs will use tmpfs instead of ramfs by | ||
| 83 | default. To force ramfs, add "rootfstype=ramfs" to the kernel command | ||
| 84 | line. | ||
| 85 | |||
| 82 | What is initramfs? | 86 | What is initramfs? |
| 83 | ------------------ | 87 | ------------------ |
| 84 | 88 | ||
diff --git a/Documentation/filesystems/relay.txt b/Documentation/filesystems/relay.txt index 510b722667ac..33e2f3694733 100644 --- a/Documentation/filesystems/relay.txt +++ b/Documentation/filesystems/relay.txt | |||
| @@ -31,7 +31,7 @@ Semantics | |||
| 31 | 31 | ||
| 32 | Each relay channel has one buffer per CPU, each buffer has one or more | 32 | Each relay channel has one buffer per CPU, each buffer has one or more |
| 33 | sub-buffers. Messages are written to the first sub-buffer until it is | 33 | sub-buffers. Messages are written to the first sub-buffer until it is |
| 34 | too full to contain a new message, in which case it it is written to | 34 | too full to contain a new message, in which case it is written to |
| 35 | the next (if available). Messages are never split across sub-buffers. | 35 | the next (if available). Messages are never split across sub-buffers. |
| 36 | At this point, userspace can be notified so it empties the first | 36 | At this point, userspace can be notified so it empties the first |
| 37 | sub-buffer, while the kernel continues writing to the next. | 37 | sub-buffer, while the kernel continues writing to the next. |
diff --git a/Documentation/filesystems/sysfs-tagging.txt b/Documentation/filesystems/sysfs-tagging.txt index caaaf1266d8f..eb843e49c5a3 100644 --- a/Documentation/filesystems/sysfs-tagging.txt +++ b/Documentation/filesystems/sysfs-tagging.txt | |||
| @@ -24,7 +24,7 @@ flag between KOBJ_NS_TYPE_NONE and KOBJ_NS_TYPES, and s_ns will | |||
| 24 | point to the namespace to which it belongs. | 24 | point to the namespace to which it belongs. |
| 25 | 25 | ||
| 26 | Each sysfs superblock's sysfs_super_info contains an array void | 26 | Each sysfs superblock's sysfs_super_info contains an array void |
| 27 | *ns[KOBJ_NS_TYPES]. When a a task in a tagging namespace | 27 | *ns[KOBJ_NS_TYPES]. When a task in a tagging namespace |
| 28 | kobj_nstype first mounts sysfs, a new superblock is created. It | 28 | kobj_nstype first mounts sysfs, a new superblock is created. It |
| 29 | will be differentiated from other sysfs mounts by having its | 29 | will be differentiated from other sysfs mounts by having its |
| 30 | s_fs_info->ns[kobj_nstype] set to the new namespace. Note that | 30 | s_fs_info->ns[kobj_nstype] set to the new namespace. Note that |
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index f93a88250a44..deb48b5fd883 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt | |||
| @@ -359,11 +359,9 @@ struct inode_operations { | |||
| 359 | ssize_t (*listxattr) (struct dentry *, char *, size_t); | 359 | ssize_t (*listxattr) (struct dentry *, char *, size_t); |
| 360 | int (*removexattr) (struct dentry *, const char *); | 360 | int (*removexattr) (struct dentry *, const char *); |
| 361 | void (*update_time)(struct inode *, struct timespec *, int); | 361 | void (*update_time)(struct inode *, struct timespec *, int); |
| 362 | int (*atomic_open)(struct inode *, struct dentry *, | 362 | int (*atomic_open)(struct inode *, struct dentry *, struct file *, |
| 363 | unsigned open_flag, umode_t create_mode, int *opened); | ||
| 363 | int (*tmpfile) (struct inode *, struct dentry *, umode_t); | 364 | int (*tmpfile) (struct inode *, struct dentry *, umode_t); |
| 364 | } ____cacheline_aligned; | ||
| 365 | struct file *, unsigned open_flag, | ||
| 366 | umode_t create_mode, int *opened); | ||
| 367 | }; | 365 | }; |
| 368 | 366 | ||
| 369 | Again, all methods are called without any locks being held, unless | 367 | Again, all methods are called without any locks being held, unless |
| @@ -470,9 +468,11 @@ otherwise noted. | |||
| 470 | method the filesystem can look up, possibly create and open the file in | 468 | method the filesystem can look up, possibly create and open the file in |
| 471 | one atomic operation. If it cannot perform this (e.g. the file type | 469 | one atomic operation. If it cannot perform this (e.g. the file type |
| 472 | turned out to be wrong) it may signal this by returning 1 instead of | 470 | turned out to be wrong) it may signal this by returning 1 instead of |
| 473 | usual 0 or -ve . This method is only called if the last | 471 | usual 0 or -ve . This method is only called if the last component is |
| 474 | component is negative or needs lookup. Cached positive dentries are | 472 | negative or needs lookup. Cached positive dentries are still handled by |
| 475 | still handled by f_op->open(). | 473 | f_op->open(). If the file was created, the FILE_CREATED flag should be |
| 474 | set in "opened". In case of O_EXCL the method must only succeed if the | ||
| 475 | file didn't exist and hence FILE_CREATED shall always be set on success. | ||
| 476 | 476 | ||
| 477 | tmpfile: called in the end of O_TMPFILE open(). Optional, equivalent to | 477 | tmpfile: called in the end of O_TMPFILE open(). Optional, equivalent to |
| 478 | atomically creating, opening and unlinking a file in given directory. | 478 | atomically creating, opening and unlinking a file in given directory. |
diff --git a/Documentation/filesystems/xfs.txt b/Documentation/filesystems/xfs.txt index 12525b17d9ed..5be51fd888bd 100644 --- a/Documentation/filesystems/xfs.txt +++ b/Documentation/filesystems/xfs.txt | |||
| @@ -135,7 +135,7 @@ default behaviour. | |||
| 135 | If the memory cost of 8 log buffers is too high on small | 135 | If the memory cost of 8 log buffers is too high on small |
| 136 | systems, then it may be reduced at some cost to performance | 136 | systems, then it may be reduced at some cost to performance |
| 137 | on metadata intensive workloads. The logbsize option below | 137 | on metadata intensive workloads. The logbsize option below |
| 138 | controls the size of each buffer and so is also relevent to | 138 | controls the size of each buffer and so is also relevant to |
| 139 | this case. | 139 | this case. |
| 140 | 140 | ||
| 141 | logbsize=value | 141 | logbsize=value |
