1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066 |
- Version 1.62
- ------------
- Add sockopt=TCP_NODELAY mount option. EA (xattr) routines hardened
- to more strictly handle corrupt frames.
- Version 1.61
- ------------
- Fix append problem to Samba servers (files opened with O_APPEND could
- have duplicated data). Fix oops in cifs_lookup. Workaround problem
- mounting to OS/400 Netserve. Fix oops in cifs_get_tcp_session.
- Disable use of server inode numbers when server only
- partially supports them (e.g. for one server querying inode numbers on
- FindFirst fails but QPathInfo queries works). Fix oops with dfs in
- cifs_put_smb_ses. Fix mmap to work on directio mounts (needed
- for OpenOffice when on forcedirectio mount e.g.)
- Version 1.60
- -------------
- Fix memory leak in reconnect. Fix oops in DFS mount error path.
- Set s_maxbytes to smaller (the max that vfs can handle) so that
- sendfile will now work over cifs mounts again. Add noforcegid
- and noforceuid mount parameters. Fix small mem leak when using
- ntlmv2. Fix 2nd mount to same server but with different port to
- be allowed (rather than reusing the 1st port) - only when the
- user explicitly overrides the port on the 2nd mount.
- Version 1.59
- ------------
- Client uses server inode numbers (which are persistent) rather than
- client generated ones by default (mount option "serverino" turned
- on by default if server supports it). Add forceuid and forcegid
- mount options (so that when negotiating unix extensions specifying
- which uid mounted does not immediately force the server's reported
- uids to be overridden). Add support for scope mount parm. Improve
- hard link detection to use same inode for both. Do not set
- read-only dos attribute on directories (for chmod) since Windows
- explorer special cases this attribute bit for directories for
- a different purpose.
- Version 1.58
- ------------
- Guard against buffer overruns in various UCS-2 to UTF-8 string conversions
- when the UTF-8 string is composed of unusually long (more than 4 byte) converted
- characters. Add support for mounting root of a share which redirects immediately
- to DFS target. Convert string conversion functions from Unicode to more
- accurately mark string length before allocating memory (which may help the
- rare cases where a UTF-8 string is much larger than the UCS2 string that
- we converted from). Fix endianness of the vcnum field used during
- session setup to distinguish multiple mounts to same server from different
- userids. Raw NTLMSSP fixed (it requires /proc/fs/cifs/experimental
- flag to be set to 2, and mount must enable krb5 to turn on extended security).
- Performance of file create to Samba improved (posix create on lookup
- removes 1 of 2 network requests sent on file create)
-
- Version 1.57
- ------------
- Improve support for multiple security contexts to the same server. We
- used to use the same "vcnumber" for all connections which could cause
- the server to treat subsequent connections, especially those that
- are authenticated as guest, as reconnections, invalidating the earlier
- user's smb session. This fix allows cifs to mount multiple times to the
- same server with different userids without risking invalidating earlier
- established security contexts. fsync now sends SMB Flush operation
- to better ensure that we wait for server to write all of the data to
- server disk (not just write it over the network). Add new mount
- parameter to allow user to disable sending the (slow) SMB flush on
- fsync if desired (fsync still flushes all cached write data to the server).
- Posix file open support added (turned off after one attempt if server
- fails to support it properly, as with Samba server versions prior to 3.3.2)
- Fix "redzone overwritten" bug in cifs_put_tcon (CIFSTcon may allocate too
- little memory for the "nativeFileSystem" field returned by the server
- during mount). Endian convert inode numbers if necessary (makes it easier
- to compare inode numbers on network files from big endian systems).
- Version 1.56
- ------------
- Add "forcemandatorylock" mount option to allow user to use mandatory
- rather than posix (advisory) byte range locks, even though server would
- support posix byte range locks. Fix query of root inode when prefixpath
- specified and user does not have access to query information about the
- top of the share. Fix problem in 2.6.28 resolving DFS paths to
- Samba servers (worked to Windows). Fix rmdir so that pending search
- (readdir) requests do not get invalid results which include the now
- removed directory. Fix oops in cifs_dfs_ref.c when prefixpath is not reachable
- when using DFS. Add better file create support to servers which support
- the CIFS POSIX protocol extensions (this adds support for new flags
- on create, and improves semantics for write of locked ranges).
- Version 1.55
- ------------
- Various fixes to make delete of open files behavior more predictable
- (when delete of an open file fails we mark the file as "delete-on-close"
- in a way that more servers accept, but only if we can first rename the
- file to a temporary name). Add experimental support for more safely
- handling fcntl(F_SETLEASE). Convert cifs to using blocking tcp
- sends, and also let tcp autotune the socket send and receive buffers.
- This reduces the number of EAGAIN errors returned by TCP/IP in
- high stress workloads (and the number of retries on socket writes
- when sending large SMBWriteX requests). Fix case in which a portion of
- data can in some cases not get written to the file on the server before the
- file is closed. Fix DFS parsing to properly handle path consumed field,
- and to handle certain codepage conversions better. Fix mount and
- umount race that can cause oops in mount or umount or reconnect.
- Version 1.54
- ------------
- Fix premature write failure on congested networks (we would give up
- on EAGAIN from the socket too quickly on large writes).
- Cifs_mkdir and cifs_create now respect the setgid bit on parent dir.
- Fix endian problems in acl (mode from/to cifs acl) on bigendian
- architectures. Fix problems with preserving timestamps on copying open
- files (e.g. "cp -a") to Windows servers. For mkdir and create honor setgid bit
- on parent directory when server supports Unix Extensions but not POSIX
- create. Update cifs.upcall version to handle new Kerberos sec flags
- (this requires update of cifs.upcall program from Samba). Fix memory leak
- on dns_upcall (resolving DFS referralls). Fix plain text password
- authentication (requires setting SecurityFlags to 0x30030 to enable
- lanman and plain text though). Fix writes to be at correct offset when
- file is open with O_APPEND and file is on a directio (forcediretio) mount.
- Fix bug in rewinding readdir directory searches. Add nodfs mount option.
- Version 1.53
- ------------
- DFS support added (Microsoft Distributed File System client support needed
- for referrals which enable a hierarchical name space among servers).
- Disable temporary caching of mode bits to servers which do not support
- storing of mode (e.g. Windows servers, when client mounts without cifsacl
- mount option) and add new "dynperm" mount option to enable temporary caching
- of mode (enable old behavior). Fix hang on mount caused when server crashes
- tcp session during negotiate protocol.
- Version 1.52
- ------------
- Fix oops on second mount to server when null auth is used.
- Enable experimental Kerberos support. Return writebehind errors on flush
- and sync so that events like out of disk space get reported properly on
- cached files. Fix setxattr failure to certain Samba versions. Fix mount
- of second share to disconnected server session (autoreconnect on this).
- Add ability to modify cifs acls for handling chmod (when mounted with
- cifsacl flag). Fix prefixpath path separator so we can handle mounts
- with prefixpaths longer than one directory (one path component) when
- mounted to Windows servers. Fix slow file open when cifsacl
- enabled. Fix memory leak in FindNext when the SMB call returns -EBADF.
- Version 1.51
- ------------
- Fix memory leak in statfs when mounted to very old servers (e.g.
- Windows 9x). Add new feature "POSIX open" which allows servers
- which support the current POSIX Extensions to provide better semantics
- (e.g. delete for open files opened with posix open). Take into
- account umask on posix mkdir not just older style mkdir. Add
- ability to mount to IPC$ share (which allows CIFS named pipes to be
- opened, read and written as if they were files). When 1st tree
- connect fails (e.g. due to signing negotiation failure) fix
- leak that causes cifsd not to stop and rmmod to fail to cleanup
- cifs_request_buffers pool. Fix problem with POSIX Open/Mkdir on
- bigendian architectures. Fix possible memory corruption when
- EAGAIN returned on kern_recvmsg. Return better error if server
- requires packet signing but client has disabled it. When mounted
- with cifsacl mount option - mode bits are approximated based
- on the contents of the ACL of the file or directory. When cifs
- mount helper is missing convert make sure that UNC name
- has backslash (not forward slash) between ip address of server
- and the share name.
- Version 1.50
- ------------
- Fix NTLMv2 signing. NFS server mounted over cifs works (if cifs mount is
- done with "serverino" mount option). Add support for POSIX Unlink
- (helps with certain sharing violation cases when server such as
- Samba supports newer POSIX CIFS Protocol Extensions). Add "nounix"
- mount option to allow disabling the CIFS Unix Extensions for just
- that mount. Fix hang on spinlock in find_writable_file (race when
- reopening file after session crash). Byte range unlock request to
- windows server could unlock more bytes (on server copy of file)
- than intended if start of unlock request is well before start of
- a previous byte range lock that we issued.
- Version 1.49
- ------------
- IPv6 support. Enable ipv6 addresses to be passed on mount (put the ipv6
- address after the "ip=" mount option, at least until mount.cifs is fixed to
- handle DNS host to ipv6 name translation). Accept override of uid or gid
- on mount even when Unix Extensions are negotiated (it used to be ignored
- when Unix Extensions were ignored). This allows users to override the
- default uid and gid for files when they are certain that the uids or
- gids on the server do not match those of the client. Make "sec=none"
- mount override username (so that null user connection is attempted)
- to match what documentation said. Support for very large reads, over 127K,
- available to some newer servers (such as Samba 3.0.26 and later but
- note that it also requires setting CIFSMaxBufSize at module install
- time to a larger value which may hurt performance in some cases).
- Make sign option force signing (or fail if server does not support it).
- Version 1.48
- ------------
- Fix mtime bouncing around from local idea of last write times to remote time.
- Fix hang (in i_size_read) when simultaneous size update of same remote file
- on smp system corrupts sequence number. Do not reread unnecessarily partial page
- (which we are about to overwrite anyway) when writing out file opened rw.
- When DOS attribute of file on non-Unix server's file changes on the server side
- from read-only back to read-write, reflect this change in default file mode
- (we had been leaving a file's mode read-only until the inode were reloaded).
- Allow setting of attribute back to ATTR_NORMAL (removing readonly dos attribute
- when archive dos attribute not set and we are changing mode back to writeable
- on server which does not support the Unix Extensions). Remove read only dos
- attribute on chmod when adding any write permission (ie on any of
- user/group/other (not all of user/group/other ie 0222) when
- mounted to windows. Add support for POSIX MkDir (slight performance
- enhancement and eliminates the network race between the mkdir and set
- path info of the mode).
- Version 1.47
- ------------
- Fix oops in list_del during mount caused by unaligned string.
- Fix file corruption which could occur on some large file
- copies caused by writepages page i/o completion bug.
- Seek to SEEK_END forces check for update of file size for non-cached
- files. Allow file size to be updated on remote extend of locally open,
- non-cached file. Fix reconnect to newer Samba servers (or other servers
- which support the CIFS Unix/POSIX extensions) so that we again tell the
- server the Unix/POSIX cifs capabilities which we support (SetFSInfo).
- Add experimental support for new POSIX Open/Mkdir (which returns
- stat information on the open, and allows setting the mode).
- Version 1.46
- ------------
- Support deep tree mounts. Better support OS/2, Win9x (DOS) time stamps.
- Allow null user to be specified on mount ("username="). Do not return
- EINVAL on readdir when filldir fails due to overwritten blocksize
- (fixes FC problem). Return error in rename 2nd attempt retry (ie report
- if rename by handle also fails, after rename by path fails, we were
- not reporting whether the retry worked or not). Fix NTLMv2 to
- work to Windows servers (mount with option "sec=ntlmv2").
- Version 1.45
- ------------
- Do not time out lockw calls when using posix extensions. Do not
- time out requests if server still responding reasonably fast
- on requests on other threads. Improve POSIX locking emulation,
- (lock cancel now works, and unlock of merged range works even
- to Windows servers now). Fix oops on mount to lanman servers
- (win9x, os/2 etc.) when null password. Do not send listxattr
- (SMB to query all EAs) if nouser_xattr specified. Fix SE Linux
- problem (instantiate inodes/dentries in right order for readdir).
- Version 1.44
- ------------
- Rewritten sessionsetup support, including support for legacy SMB
- session setup needed for OS/2 and older servers such as Windows 95 and 98.
- Fix oops on ls to OS/2 servers. Add support for level 1 FindFirst
- so we can do search (ls etc.) to OS/2. Do not send NTCreateX
- or recent levels of FindFirst unless server says it supports NT SMBs
- (instead use legacy equivalents from LANMAN dialect). Fix to allow
- NTLMv2 authentication support (now can use stronger password hashing
- on mount if corresponding /proc/fs/cifs/SecurityFlags is set (0x4004).
- Allow override of global cifs security flags on mount via "sec=" option(s).
- Version 1.43
- ------------
- POSIX locking to servers which support CIFS POSIX Extensions
- (disabled by default controlled by proc/fs/cifs/Experimental).
- Handle conversion of long share names (especially Asian languages)
- to Unicode during mount. Fix memory leak in sess struct on reconnect.
- Fix rare oops after acpi suspend. Fix O_TRUNC opens to overwrite on
- cifs open which helps rare case when setpathinfo fails or server does
- not support it.
- Version 1.42
- ------------
- Fix slow oplock break when mounted to different servers at the same time and
- the tids match and we try to find matching fid on wrong server. Fix read
- looping when signing required by server (2.6.16 kernel only). Fix readdir
- vs. rename race which could cause each to hang. Return . and .. even
- if server does not. Allow searches to skip first three entries and
- begin at any location. Fix oops in find_writeable_file.
- Version 1.41
- ------------
- Fix NTLMv2 security (can be enabled in /proc/fs/cifs) so customers can
- configure stronger authentication. Fix sfu symlinks so they can
- be followed (not just recognized). Fix wraparound of bcc on
- read responses when buffer size over 64K and also fix wrap of
- max smb buffer size when CIFSMaxBufSize over 64K. Fix oops in
- cifs_user_read and cifs_readpages (when EAGAIN on send of smb
- on socket is returned over and over). Add POSIX (advisory) byte range
- locking support (requires server with newest CIFS UNIX Extensions
- to the protocol implemented). Slow down negprot slightly in port 139
- RFC1001 case to give session_init time on buggy servers.
- Version 1.40
- ------------
- Use fsuid (fsgid) more consistently instead of uid (gid). Improve performance
- of readpages by eliminating one extra memcpy. Allow update of file size
- from remote server even if file is open for write as long as mount is
- directio. Recognize share mode security and send NTLM encrypted password
- on tree connect if share mode negotiated.
- Version 1.39
- ------------
- Defer close of a file handle slightly if pending writes depend on that handle
- (this reduces the EBADF bad file handle errors that can be logged under heavy
- stress on writes). Modify cifs Kconfig options to expose CONFIG_CIFS_STATS2
- Fix SFU style symlinks and mknod needed for servers which do not support the
- CIFS Unix Extensions. Fix setfacl/getfacl on bigendian. Timeout negative
- dentries so files that the client sees as deleted but that later get created
- on the server will be recognized. Add client side permission check on setattr.
- Timeout stuck requests better (where server has never responded or sent corrupt
- responses)
- Version 1.38
- ------------
- Fix tcp socket retransmission timeouts (e.g. on ENOSPACE from the socket)
- to be smaller at first (but increasing) so large write performance performance
- over GigE is better. Do not hang thread on illegal byte range lock response
- from Windows (Windows can send an RFC1001 size which does not match smb size) by
- allowing an SMBs TCP length to be up to a few bytes longer than it should be.
- wsize and rsize can now be larger than negotiated buffer size if server
- supports large readx/writex, even when directio mount flag not specified.
- Write size will in many cases now be 16K instead of 4K which greatly helps
- file copy performance on lightly loaded networks. Fix oops in dnotify
- when experimental config flag enabled. Make cifsFYI more granular.
- Version 1.37
- ------------
- Fix readdir caching when unlink removes file in current search buffer,
- and this is followed by a rewind search to just before the deleted entry.
- Do not attempt to set ctime unless atime and/or mtime change requested
- (most servers throw it away anyway). Fix length check of received smbs
- to be more accurate. Fix big endian problem with mapchars mount option,
- and with a field returned by statfs.
- Version 1.36
- ------------
- Add support for mounting to older pre-CIFS servers such as Windows9x and ME.
- For these older servers, add option for passing netbios name of server in
- on mount (servernetbiosname). Add suspend support for power management, to
- avoid cifsd thread preventing software suspend from working.
- Add mount option for disabling the default behavior of sending byte range lock
- requests to the server (necessary for certain applications which break with
- mandatory lock behavior such as Evolution), and also mount option for
- requesting case insensitive matching for path based requests (requesting
- case sensitive is the default).
- Version 1.35
- ------------
- Add writepage performance improvements. Fix path name conversions
- for long filenames on mounts which were done with "mapchars" mount option
- specified. Ensure multiplex ids do not collide. Fix case in which
- rmmod can oops if done soon after last unmount. Fix truncated
- search (readdir) output when resume filename was a long filename.
- Fix filename conversion when mapchars mount option was specified and
- filename was a long filename.
- Version 1.34
- ------------
- Fix error mapping of the TOO_MANY_LINKS (hardlinks) case.
- Do not oops if root user kills cifs oplock kernel thread or
- kills the cifsd thread (NB: killing the cifs kernel threads is not
- recommended, unmount and rmmod cifs will kill them when they are
- no longer needed). Fix readdir to ASCII servers (ie older servers
- which do not support Unicode) and also require asterisk.
- Fix out of memory case in which data could be written one page
- off in the page cache.
- Version 1.33
- ------------
- Fix caching problem, in which readdir of directory containing a file
- which was cached could cause the file's time stamp to be updated
- without invalidating the readahead data (so we could get stale
- file data on the client for that file even as the server copy changed).
- Cleanup response processing so cifsd can not loop when abnormally
- terminated.
- Version 1.32
- ------------
- Fix oops in ls when Transact2 FindFirst (or FindNext) returns more than one
- transact response for an SMB request and search entry split across two frames.
- Add support for lsattr (getting ext2/ext3/reiserfs attr flags from the server)
- as new protocol extensions. Do not send Get/Set calls for POSIX ACLs
- unless server explicitly claims to support them in CIFS Unix extensions
- POSIX ACL capability bit. Fix packet signing when multiuser mounting with
- different users from the same client to the same server. Fix oops in
- cifs_close. Add mount option for remapping reserved characters in
- filenames (also allow recognizing files with created by SFU which have any
- of these seven reserved characters, except backslash, to be recognized).
- Fix invalid transact2 message (we were sometimes trying to interpret
- oplock breaks as SMB responses). Add ioctl for checking that the
- current uid matches the uid of the mounter (needed by umount.cifs).
- Reduce the number of large buffer allocations in cifs response processing
- (significantly reduces memory pressure under heavy stress with multiple
- processes accessing the same server at the same time).
- Version 1.31
- ------------
- Fix updates of DOS attributes and time fields so that files on NT4 servers
- do not get marked delete on close. Display sizes of cifs buffer pools in
- cifs stats. Fix oops in unmount when cifsd thread being killed by
- shutdown. Add generic readv/writev and aio support. Report inode numbers
- consistently in readdir and lookup (when serverino mount option is
- specified use the inode number that the server reports - for both lookup
- and readdir, otherwise by default the locally generated inode number is used
- for inodes created in either path since servers are not always able to
- provide unique inode numbers when exporting multiple volumes from under one
- sharename).
- Version 1.30
- ------------
- Allow new nouser_xattr mount parm to disable xattr support for user namespace.
- Do not flag user_xattr mount parm in dmesg. Retry failures setting file time
- (mostly affects NT4 servers) by retry with handle based network operation.
- Add new POSIX Query FS Info for returning statfs info more accurately.
- Handle passwords with multiple commas in them.
- Version 1.29
- ------------
- Fix default mode in sysfs of cifs module parms. Remove old readdir routine.
- Fix capabilities flags for large readx so as to allow reads larger than 64K.
- Version 1.28
- ------------
- Add module init parm for large SMB buffer size (to allow it to be changed
- from its default of 16K) which is especially useful for large file copy
- when mounting with the directio mount option. Fix oops after
- returning from mount when experimental ExtendedSecurity enabled and
- SpnegoNegotiated returning invalid error. Fix case to retry better when
- peek returns from 1 to 3 bytes on socket which should have more data.
- Fixed path based calls (such as cifs lookup) to handle path names
- longer than 530 (now can handle PATH_MAX). Fix pass through authentication
- from Samba server to DC (Samba required dummy LM password).
- Version 1.27
- ------------
- Turn off DNOTIFY (directory change notification support) by default
- (unless built with the experimental flag) to fix hang with KDE
- file browser. Fix DNOTIFY flag mappings. Fix hang (in wait_event
- waiting on an SMB response) in SendReceive when session dies but
- reconnects quickly from another task. Add module init parms for
- minimum number of large and small network buffers in the buffer pools,
- and for the maximum number of simultaneous requests.
- Version 1.26
- ------------
- Add setfacl support to allow setting of ACLs remotely to Samba 3.10 and later
- and other POSIX CIFS compliant servers. Fix error mapping for getfacl
- to EOPNOTSUPP when server does not support posix acls on the wire. Fix
- improperly zeroed buffer in CIFS Unix extensions set times call.
- Version 1.25
- ------------
- Fix internationalization problem in cifs readdir with filenames that map to
- longer UTF-8 strings than the string on the wire was in Unicode. Add workaround
- for readdir to netapp servers. Fix search rewind (seek into readdir to return
- non-consecutive entries). Do not do readdir when server negotiates
- buffer size to small to fit filename. Add support for reading POSIX ACLs from
- the server (add also acl and noacl mount options).
- Version 1.24
- ------------
- Optionally allow using server side inode numbers, rather than client generated
- ones by specifying mount option "serverino" - this is required for some apps
- to work which double check hardlinked files and have persistent inode numbers.
- Version 1.23
- ------------
- Multiple bigendian fixes. On little endian systems (for reconnect after
- network failure) fix tcp session reconnect code so we do not try first
- to reconnect on reverse of port 445. Treat reparse points (NTFS junctions)
- as directories rather than symlinks because we can do follow link on them.
- Version 1.22
- ------------
- Add config option to enable XATTR (extended attribute) support, mapping
- xattr names in the "user." namespace space to SMB/CIFS EAs. Lots of
- minor fixes pointed out by the Stanford SWAT checker (mostly missing
- or out of order NULL pointer checks in little used error paths).
- Version 1.21
- ------------
- Add new mount parm to control whether mode check (generic_permission) is done
- on the client. If Unix extensions are enabled and the uids on the client
- and server do not match, client permission checks are meaningless on
- server uids that do not exist on the client (this does not affect the
- normal ACL check which occurs on the server). Fix default uid
- on mknod to match create and mkdir. Add optional mount parm to allow
- override of the default uid behavior (in which the server sets the uid
- and gid of newly created files). Normally for network filesystem mounts
- user want the server to set the uid/gid on newly created files (rather than
- using uid of the client processes you would in a local filesystem).
- Version 1.20
- ------------
- Make transaction counts more consistent. Merge /proc/fs/cifs/SimultaneousOps
- info into /proc/fs/cifs/DebugData. Fix oops in rare oops in readdir
- (in build_wildcard_path_from_dentry). Fix mknod to pass type field
- (block/char/fifo) properly. Remove spurious mount warning log entry when
- credentials passed as mount argument. Set major/minor device number in
- inode for block and char devices when unix extensions enabled.
- Version 1.19
- ------------
- Fix /proc/fs/cifs/Stats and DebugData display to handle larger
- amounts of return data. Properly limit requests to MAX_REQ (50
- is the usual maximum active multiplex SMB/CIFS requests per server).
- Do not kill cifsd (and thus hurt the other SMB session) when more than one
- session to the same server (but with different userids) exists and one
- of the two user's smb sessions is being removed while leaving the other.
- Do not loop reconnecting in cifsd demultiplex thread when admin
- kills the thread without going through unmount.
- Version 1.18
- ------------
- Do not rename hardlinked files (since that should be a noop). Flush
- cached write behind data when reopening a file after session abend,
- except when already in write. Grab per socket sem during reconnect
- to avoid oops in sendmsg if overlapping with reconnect. Do not
- reset cached inode file size on readdir for files open for write on
- client.
- Version 1.17
- ------------
- Update number of blocks in file so du command is happier (in Linux a fake
- blocksize of 512 is required for calculating number of blocks in inode).
- Fix prepare write of partial pages to read in data from server if possible.
- Fix race on tcpStatus field between unmount and reconnection code, causing
- cifsd process sometimes to hang around forever. Improve out of memory
- checks in cifs_filldir
- Version 1.16
- ------------
- Fix incorrect file size in file handle based setattr on big endian hardware.
- Fix oops in build_path_from_dentry when out of memory. Add checks for invalid
- and closing file structs in writepage/partialpagewrite. Add statistics
- for each mounted share (new menuconfig option). Fix endianness problem in
- volume information displayed in /proc/fs/cifs/DebugData (only affects
- affects big endian architectures). Prevent renames while constructing
- path names for open, mkdir and rmdir.
- Version 1.15
- ------------
- Change to mempools for alloc smb request buffers and multiplex structs
- to better handle low memory problems (and potential deadlocks).
- Version 1.14
- ------------
- Fix incomplete listings of large directories on Samba servers when Unix
- extensions enabled. Fix oops when smb_buffer can not be allocated. Fix
- rename deadlock when writing out dirty pages at same time.
- Version 1.13
- ------------
- Fix open of files in which O_CREATE can cause the mode to change in
- some cases. Fix case in which retry of write overlaps file close.
- Fix PPC64 build error. Reduce excessive stack usage in smb password
- hashing. Fix overwrite of Linux user's view of file mode to Windows servers.
- Version 1.12
- ------------
- Fixes for large file copy, signal handling, socket retry, buffer
- allocation and low memory situations.
- Version 1.11
- ------------
- Better port 139 support to Windows servers (RFC1001/RFC1002 Session_Initialize)
- also now allowing support for specifying client netbiosname. NT4 support added.
- Version 1.10
- ------------
- Fix reconnection (and certain failed mounts) to properly wake up the
- blocked users thread so it does not seem hung (in some cases was blocked
- until the cifs receive timeout expired). Fix spurious error logging
- to kernel log when application with open network files killed.
- Version 1.09
- ------------
- Fix /proc/fs module unload warning message (that could be logged
- to the kernel log). Fix intermittent failure in connectathon
- test7 (hardlink count not immediately refreshed in case in which
- inode metadata can be incorrectly kept cached when time near zero)
- Version 1.08
- ------------
- Allow file_mode and dir_mode (specified at mount time) to be enforced
- locally (the server already enforced its own ACLs too) for servers
- that do not report the correct mode (do not support the
- CIFS Unix Extensions).
- Version 1.07
- ------------
- Fix some small memory leaks in some unmount error paths. Fix major leak
- of cache pages in readpages causing multiple read oriented stress
- testcases (including fsx, and even large file copy) to fail over time.
- Version 1.06
- ------------
- Send NTCreateX with ATTR_POSIX if Linux/Unix extensions negotiated with server.
- This allows files that differ only in case and improves performance of file
- creation and file open to such servers. Fix semaphore conflict which causes
- slow delete of open file to Samba (which unfortunately can cause an oplock
- break to self while vfs_unlink held i_sem) which can hang for 20 seconds.
- Version 1.05
- ------------
- fixes to cifs_readpages for fsx test case
- Version 1.04
- ------------
- Fix caching data integrity bug when extending file size especially when no
- oplock on file. Fix spurious logging of valid already parsed mount options
- that are parsed outside of the cifs vfs such as nosuid.
- Version 1.03
- ------------
- Connect to server when port number override not specified, and tcp port
- unitialized. Reset search to restart at correct file when kernel routine
- filldir returns error during large directory searches (readdir).
- Version 1.02
- ------------
- Fix caching problem when files opened by multiple clients in which
- page cache could contain stale data, and write through did
- not occur often enough while file was still open when read ahead
- (read oplock) not allowed. Treat "sep=" when first mount option
- as an override of comma as the default separator between mount
- options.
- Version 1.01
- ------------
- Allow passwords longer than 16 bytes. Allow null password string.
- Version 1.00
- ------------
- Gracefully clean up failed mounts when attempting to mount to servers such as
- Windows 98 that terminate tcp sessions during protocol negotiation. Handle
- embedded commas in mount parsing of passwords.
- Version 0.99
- ------------
- Invalidate local inode cached pages on oplock break and when last file
- instance is closed so that the client does not continue using stale local
- copy rather than later modified server copy of file. Do not reconnect
- when server drops the tcp session prematurely before negotiate
- protocol response. Fix oops in reopen_file when dentry freed. Allow
- the support for CIFS Unix Extensions to be disabled via proc interface.
- Version 0.98
- ------------
- Fix hang in commit_write during reconnection of open files under heavy load.
- Fix unload_nls oops in a mount failure path. Serialize writes to same socket
- which also fixes any possible races when cifs signatures are enabled in SMBs
- being sent out of signature sequence number order.
- Version 0.97
- ------------
- Fix byte range locking bug (endian problem) causing bad offset and
- length.
- Version 0.96
- ------------
- Fix oops (in send_sig) caused by CIFS unmount code trying to
- wake up the demultiplex thread after it had exited. Do not log
- error on harmless oplock release of closed handle.
- Version 0.95
- ------------
- Fix unsafe global variable usage and password hash failure on gcc 3.3.1
- Fix problem reconnecting secondary mounts to same server after session
- failure. Fix invalid dentry - race in mkdir when directory gets created
- by another client between the lookup and mkdir.
-
- Version 0.94
- ------------
- Fix to list processing in reopen_files. Fix reconnection when server hung
- but tcpip session still alive. Set proper timeout on socket read.
- Version 0.93
- ------------
- Add missing mount options including iocharset. SMP fixes in write and open.
- Fix errors in reconnecting after TCP session failure. Fix module unloading
- of default nls codepage
- Version 0.92
- ------------
- Active smb transactions should never go negative (fix double FreeXid). Fix
- list processing in file routines. Check return code on kmalloc in open.
- Fix spinlock usage for SMP.
- Version 0.91
- ------------
- Fix oops in reopen_files when invalid dentry. drop dentry on server rename
- and on revalidate errors. Fix cases where pid is now tgid. Fix return code
- on create hard link when server does not support them.
- Version 0.90
- ------------
- Fix scheduling while atomic error in getting inode info on newly created file.
- Fix truncate of existing files opened with O_CREAT but not O_TRUNC set.
- Version 0.89
- ------------
- Fix oops on write to dead tcp session. Remove error log write for case when file open
- O_CREAT but not O_EXCL
- Version 0.88
- ------------
- Fix non-POSIX behavior on rename of open file and delete of open file by taking
- advantage of trans2 SetFileInfo rename facility if available on target server.
- Retry on ENOSPC and EAGAIN socket errors.
- Version 0.87
- ------------
- Fix oops on big endian readdir. Set blksize to be even power of two (2**blkbits) to fix
- allocation size miscalculation. After oplock token lost do not read through
- cache.
- Version 0.86
- ------------
- Fix oops on empty file readahead. Fix for file size handling for locally cached files.
- Version 0.85
- ------------
- Fix oops in mkdir when server fails to return inode info. Fix oops in reopen_files
- during auto reconnection to server after server recovered from failure.
- Version 0.84
- ------------
- Finish support for Linux 2.5 open/create changes, which removes the
- redundant NTCreate/QPathInfo/close that was sent during file create.
- Enable oplock by default. Enable packet signing by default (needed to
- access many recent Windows servers)
- Version 0.83
- ------------
- Fix oops when mounting to long server names caused by inverted parms to kmalloc.
- Fix MultiuserMount (/proc/fs/cifs configuration setting) so that when enabled
- we will choose a cifs user session (smb uid) that better matches the local
- uid if a) the mount uid does not match the current uid and b) we have another
- session to the same server (ip address) for a different mount which
- matches the current local uid.
- Version 0.82
- ------------
- Add support for mknod of block or character devices. Fix oplock
- code (distributed caching) to properly send response to oplock
- break from server.
- Version 0.81
- ------------
- Finish up CIFS packet digital signing for the default
- NTLM security case. This should help Windows 2003
- network interoperability since it is common for
- packet signing to be required now. Fix statfs (stat -f)
- which recently started returning errors due to
- invalid value (-1 instead of 0) being set in the
- struct kstatfs f_ffiles field.
- Version 0.80
- -----------
- Fix oops on stopping oplock thread when removing cifs when
- built as module.
- Version 0.79
- ------------
- Fix mount options for ro (readonly), uid, gid and file and directory mode.
- Version 0.78
- ------------
- Fix errors displayed on failed mounts to be more understandable.
- Fixed various incorrect or misleading smb to posix error code mappings.
- Version 0.77
- ------------
- Fix display of NTFS DFS junctions to display as symlinks.
- They are the network equivalent. Fix oops in
- cifs_partialpagewrite caused by missing spinlock protection
- of openfile linked list. Allow writebehind caching errors to
- be returned to the application at file close.
- Version 0.76
- ------------
- Clean up options displayed in /proc/mounts by show_options to
- be more consistent with other filesystems.
- Version 0.75
- ------------
- Fix delete of readonly file to Windows servers. Reflect
- presence or absence of read only dos attribute in mode
- bits for servers that do not support CIFS Unix extensions.
- Fix shortened results on readdir of large directories to
- servers supporting CIFS Unix extensions (caused by
- incorrect resume key).
- Version 0.74
- ------------
- Fix truncate bug (set file size) that could cause hangs e.g. running fsx
- Version 0.73
- ------------
- unload nls if mount fails.
- Version 0.72
- ------------
- Add resume key support to search (readdir) code to workaround
- Windows bug. Add /proc/fs/cifs/LookupCacheEnable which
- allows disabling caching of attribute information for
- lookups.
- Version 0.71
- ------------
- Add more oplock handling (distributed caching code). Remove
- dead code. Remove excessive stack space utilization from
- symlink routines.
- Version 0.70
- ------------
- Fix oops in get dfs referral (triggered when null path sent in to
- mount). Add support for overriding rsize at mount time.
- Version 0.69
- ------------
- Fix buffer overrun in readdir which caused intermittent kernel oopses.
- Fix writepage code to release kmap on write data. Allow "-ip=" new
- mount option to be passed in on parameter distinct from the first part
- (server name portion of) the UNC name. Allow override of the
- tcp port of the target server via new mount option "-port="
- Version 0.68
- ------------
- Fix search handle leak on rewind. Fix setuid and gid so that they are
- reflected in the local inode immediately. Cleanup of whitespace
- to make 2.4 and 2.5 versions more consistent.
- Version 0.67
- ------------
- Fix signal sending so that captive thread (cifsd) exits on umount
- (which was causing the warning in kmem_cache_free of the request buffers
- at rmmod time). This had broken as a sideeffect of the recent global
- kernel change to daemonize. Fix memory leak in readdir code which
- showed up in "ls -R" (and applications that did search rewinding).
- Version 0.66
- ------------
- Reconnect tids and fids after session reconnection (still do not
- reconnect byte range locks though). Fix problem caching
- lookup information for directory inodes, improving performance,
- especially in deep directory trees. Fix various build warnings.
- Version 0.65
- ------------
- Finish fixes to commit write for caching/readahead consistency. fsx
- now works to Samba servers. Fix oops caused when readahead
- was interrupted by a signal.
- Version 0.64
- ------------
- Fix data corruption (in partial page after truncate) that caused fsx to
- fail to Windows servers. Cleaned up some extraneous error logging in
- common error paths. Add generic sendfile support.
- Version 0.63
- ------------
- Fix memory leak in AllocMidQEntry.
- Finish reconnection logic, so connection with server can be dropped
- (or server rebooted) and the cifs client will reconnect.
- Version 0.62
- ------------
- Fix temporary socket leak when bad userid or password specified
- (or other SMBSessSetup failure). Increase maximum buffer size to slightly
- over 16K to allow negotiation of up to Samba and Windows server default read
- sizes. Add support for readpages
- Version 0.61
- ------------
- Fix oops when username not passed in on mount. Extensive fixes and improvements
- to error logging (strip redundant newlines, change debug macros to ensure newline
- passed in and to be more consistent). Fix writepage wrong file handle problem,
- a readonly file handle could be incorrectly used to attempt to write out
- file updates through the page cache to multiply open files. This could cause
- the iozone benchmark to fail on the fwrite test. Fix bug mounting two different
- shares to the same Windows server when using different usernames
- (doing this to Samba servers worked but Windows was rejecting it) - now it is
- possible to use different userids when connecting to the same server from a
- Linux client. Fix oops when treeDisconnect called during unmount on
- previously freed socket.
- Version 0.60
- ------------
- Fix oops in readpages caused by not setting address space operations in inode in
- rare code path.
- Version 0.59
- ------------
- Includes support for deleting of open files and renaming over existing files (per POSIX
- requirement). Add readlink support for Windows junction points (directory symlinks).
- Version 0.58
- ------------
- Changed read and write to go through pagecache. Added additional address space operations.
- Memory mapped operations now working.
- Version 0.57
- ------------
- Added writepage code for additional memory mapping support. Fixed leak in xids causing
- the simultaneous operations counter (/proc/fs/cifs/SimultaneousOps) to increase on
- every stat call. Additional formatting cleanup.
- Version 0.56
- ------------
- Fix bigendian bug in order of time conversion. Merge 2.5 to 2.4 version. Formatting cleanup.
- Version 0.55
- ------------
- Fixes from Zwane Mwaikambo for adding missing return code checking in a few places.
- Also included a modified version of his fix to protect global list manipulation of
- the smb session and tree connection and mid related global variables.
- Version 0.54
- ------------
- Fix problem with captive thread hanging around at unmount time. Adjust to 2.5.42-pre
- changes to superblock layout. Remove wasteful allocation of smb buffers (now the send
- buffer is reused for responses). Add more oplock handling. Additional minor cleanup.
- Version 0.53
- ------------
- More stylistic updates to better match kernel style. Add additional statistics
- for filesystem which can be viewed via /proc/fs/cifs. Add more pieces of NTLMv2
- and CIFS Packet Signing enablement.
- Version 0.52
- ------------
- Replace call to sleep_on with safer wait_on_event.
- Make stylistic changes to better match kernel style recommendations.
- Remove most typedef usage (except for the PDUs themselves).
- Version 0.51
- ------------
- Update mount so the -unc mount option is no longer required (the ip address can be specified
- in a UNC style device name. Implementation of readpage/writepage started.
- Version 0.50
- ------------
- Fix intermittent problem with incorrect smb header checking on badly
- fragmented tcp responses
- Version 0.49
- ------------
- Fixes to setting of allocation size and file size.
- Version 0.48
- ------------
- Various 2.5.38 fixes. Now works on 2.5.38
- Version 0.47
- ------------
- Prepare for 2.5 kernel merge. Remove ifdefs.
- Version 0.46
- ------------
- Socket buffer management fixes. Fix dual free.
- Version 0.45
- ------------
- Various big endian fixes for hardlinks and symlinks and also for dfs.
- Version 0.44
- ------------
- Various big endian fixes for servers with Unix extensions such as Samba
- Version 0.43
- ------------
- Various FindNext fixes for incorrect filenames on large directory searches on big endian
- clients. basic posix file i/o tests now work on big endian machines, not just le
- Version 0.42
- ------------
- SessionSetup and NegotiateProtocol now work from Big Endian machines.
- Various Big Endian fixes found during testing on the Linux on 390. Various fixes for compatibility with older
- versions of 2.4 kernel (now builds and works again on kernels at least as early as 2.4.7).
- Version 0.41
- ------------
- Various minor fixes for Connectathon Posix "basic" file i/o test suite. Directory caching fixed so hardlinked
- files now return the correct number of links on fstat as they are repeatedly linked and unlinked.
- Version 0.40
- ------------
- Implemented "Raw" (i.e. not encapsulated in SPNEGO) NTLMSSP (i.e. the Security Provider Interface used to negotiate
- session advanced session authentication). Raw NTLMSSP is preferred by Windows 2000 Professional and Windows XP.
- Began implementing support for SPNEGO encapsulation of NTLMSSP based session authentication blobs
- (which is the mechanism preferred by Windows 2000 server in the absence of Kerberos).
- Version 0.38
- ------------
- Introduced optional mount helper utility mount.cifs and made coreq changes to cifs vfs to enable
- it. Fixed a few bugs in the DFS code (e.g. bcc two bytes too short and incorrect uid in PDU).
- Version 0.37
- ------------
- Rewrote much of connection and mount/unmount logic to handle bugs with
- multiple uses to same share, multiple users to same server etc.
- Version 0.36
- ------------
- Fixed major problem with dentry corruption (missing call to dput)
- Version 0.35
- ------------
- Rewrite of readdir code to fix bug. Various fixes for bigendian machines.
- Begin adding oplock support. Multiusermount and oplockEnabled flags added to /proc/fs/cifs
- although corresponding function not fully implemented in the vfs yet
- Version 0.34
- ------------
- Fixed dentry caching bug, misc. cleanup
- Version 0.33
- ------------
- Fixed 2.5 support to handle build and configure changes as well as misc. 2.5 changes. Now can build
- on current 2.5 beta version (2.5.24) of the Linux kernel as well as on 2.4 Linux kernels.
- Support for STATUS codes (newer 32 bit NT error codes) added. DFS support begun to be added.
- Version 0.32
- ------------
- Unix extensions (symlink, readlink, hardlink, chmod and some chgrp and chown) implemented
- and tested against Samba 2.2.5
- Version 0.31
- ------------
- 1) Fixed lockrange to be correct (it was one byte too short)
- 2) Fixed GETLK (i.e. the fcntl call to test a range of bytes in a file to see if locked) to correctly
- show range as locked when there is a conflict with an existing lock.
- 3) default file perms are now 2767 (indicating support for mandatory locks) instead of 777 for directories
- in most cases. Eventually will offer optional ability to query server for the correct perms.
- 3) Fixed eventual trap when mounting twice to different shares on the same server when the first succeeded
- but the second one was invalid and failed (the second one was incorrectly disconnecting the tcp and smb
- session)
- 4) Fixed error logging of valid mount options
- 5) Removed logging of password field.
- 6) Moved negotiate, treeDisconnect and uloggoffX (only tConx and SessSetup remain in connect.c) to cifssmb.c
- and cleaned them up and made them more consistent with other cifs functions.
- 7) Server support for Unix extensions is now fully detected and FindFirst is implemented both ways
- (with or without Unix extensions) but FindNext and QueryPathInfo with the Unix extensions are not completed,
- nor is the symlink support using the Unix extensions
- 8) Started adding the readlink and follow_link code
- Version 0.3
- -----------
- Initial drop
|