Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8af18971 authored by Steve French's avatar Steve French
Browse files

[CIFS] on reconnect to Samba - reset the unix capabilities



After temporary server or network failure and reconneciton, we were not
resending the unix capabilities via SetFSInfo - which confused Samba posix
byte range locking code.

Discovered by jra

Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent 7ba52631
Loading
Loading
Loading
Loading
+11 −18
Original line number Diff line number Diff line
@@ -1871,20 +1871,14 @@ config CIFS
	  file servers such as Windows 2000 (including Windows 2003, NT 4  
	  and Windows XP) as well by Samba (which provides excellent CIFS
	  server support for Linux and many other operating systems). Limited
	  support for Windows ME and similar servers is provided as well. 
	  You must use the smbfs client filesystem to access older SMB servers
	  such as OS/2 and DOS.
	  support for OS/2 and Windows ME and similar servers is provided as well.

	  The intent of the cifs module is to provide an advanced
	  network file system client for mounting to CIFS compliant servers,
	  including support for dfs (hierarchical name space), secure per-user
	  session establishment, safe distributed caching (oplock), optional
	  packet signing, Unicode and other internationalization improvements, 
	  and optional Winbind (nsswitch) integration. You do not need to enable
	  cifs if running only a (Samba) server. It is possible to enable both
	  smbfs and cifs (e.g. if you are using CIFS for accessing Windows 2003
	  and Samba 3 servers, and smbfs for accessing old servers). If you need 
	  to mount to Samba or Windows from this machine, say Y.
	  packet signing, Unicode and other internationalization improvements. 
	  If you need to mount to Samba or Windows from this machine, say Y.

config CIFS_STATS
        bool "CIFS statistics"
@@ -1977,14 +1971,13 @@ config CIFS_EXPERIMENTAL
	  depends on CIFS && EXPERIMENTAL
	  help
	    Enables cifs features under testing. These features are
	    experimental and currently include support for writepages
	    (multipage writebehind performance improvements) and directory
	    change notification ie fcntl(F_DNOTIFY) as well as some security
	    improvements.  Some also depend on setting at runtime the
	    pseudo-file /proc/fs/cifs/Experimental (which is disabled by
	    default). See the file fs/cifs/README for more details.

	    If unsure, say N.
	    experimental and currently include DFS support and directory 
	    change notification ie fcntl(F_DNOTIFY), as well as the upcall
	    mechanism which will be used for Kerberos session negotiation
	    and uid remapping.  Some of these features also may depend on 
	    setting a value of 1 to the pseudo-file /proc/fs/cifs/Experimental
	    (which is disabled by default). See the file fs/cifs/README 
	    for more details.  If unsure, say N.

config CIFS_UPCALL
	  bool "Kerberos/SPNEGO advanced session setup (EXPERIMENTAL)"
+6 −1
Original line number Diff line number Diff line
@@ -4,7 +4,12 @@ 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.
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
------------
+8 −0
Original line number Diff line number Diff line
@@ -128,3 +128,11 @@ negotiated size) and send larger write sizes to modern servers.

4) More exhaustively test against less common servers.  More testing
against Windows 9x, Windows ME servers.

DOS attrs - returned as pseudo-xattr in Samba format (check VFAT and NTFS for this too)

mount check for unmatched uids - and uid override

Add mount option for Linux extension disable per mount, and partial disable per mount (uid off, symlink/fifo/mknod on but what about posix acls?) 

Free threads at umount --force that are stuck on the sesSem
+1 −1
Original line number Diff line number Diff line
@@ -100,5 +100,5 @@ extern ssize_t cifs_getxattr(struct dentry *, const char *, void *, size_t);
extern ssize_t	cifs_listxattr(struct dentry *, char *, size_t);
extern int cifs_ioctl (struct inode * inode, struct file * filep,
		       unsigned int command, unsigned long arg);
#define CIFS_VERSION   "1.47"
#define CIFS_VERSION   "1.48"
#endif				/* _CIFSFS_H */
+1 −1
Original line number Diff line number Diff line
@@ -2108,7 +2108,7 @@ typedef struct {

typedef struct {
	/* reply varies based on requested level */
} __atribute__((packed)) OPEN_PSX_RSP; /* level 0x209 SetPathInfo data */
} __attribute__((packed)) OPEN_PSX_RSP; /* level 0x209 SetPathInfo data */


struct file_internal_info {
Loading