svn commit: linux-cifs-client r17 - in branches/linux-2.6bk/fs/cifs: .

sfrench at samba.org sfrench at samba.org
Fri Dec 10 21:02:22 GMT 2004


Author: sfrench
Date: 2004-12-10 21:02:21 +0000 (Fri, 10 Dec 2004)
New Revision: 17

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=linux-cifs-client&rev=17

Log:
Do not discard frames when peek returns more than 4 bytes but
less than 33 (ie peek can't return the full header but can
return the length).

Modified:
   branches/linux-2.6bk/fs/cifs/README
   branches/linux-2.6bk/fs/cifs/TODO
   branches/linux-2.6bk/fs/cifs/connect.c


Changeset:
Modified: branches/linux-2.6bk/fs/cifs/README
===================================================================
--- branches/linux-2.6bk/fs/cifs/README	2004-12-10 16:51:34 UTC (rev 16)
+++ branches/linux-2.6bk/fs/cifs/README	2004-12-10 21:02:21 UTC (rev 17)
@@ -200,8 +200,21 @@
 by Samba and Windows NT version 4, 2000 and XP and many other SMB/CIFS servers) 
 Servers must support either "pure-TCP" (port 445 TCP/IP CIFS connections) or RFC 
 1001/1002 support for "Netbios-Over-TCP/IP." Neither of these is likely to be a 
-problem as most servers support this.  IPv6 support is planned for the future.  
+problem as most servers support this.  IPv6 support is planned for the future,
+and is almost complete.
 
+Valid filenames differ between Windows and Linux.  Windows typically restricts
+filenames which contain certain reserved characters (e.g.the character : 
+which is used to delimit the beginning of a stream name by Windows), while
+Linux allows a slightly wider set of valid characters in filenames. Windows
+servers can remap such characters when an explicit mapping is specified in
+the Server's registry.  Samba starting with version 3.10 will allow such 
+filenames (ie those which contain valid Linux characters, which normally
+would be forbidden for Windows/CIFS semantics) as long as the server is
+configured for Unix Extensions (and the client has not disabled
+/proc/fs/cifs/LinuxExtensionsEnabled).
+  
+
 CIFS VFS Mount Options
 ======================
 A partial list of the supported mount options follows:
@@ -421,11 +434,11 @@
 	echo 1 > /proc/fs/cifs/traceSMB
 
 Two other experimental features are under development and to test 
-require enabling an ifdef (e.g. by  adding "#define CIFS_FCNTL" in cifsglob.h)
+require enabling CONFIG_CIFS_EXPERIMENTAL
 
-	CONFIG_CIFS_QUOTA
+	More efficient write operations and SMB buffer handling
 
-	CONFIG_CIFS_FCNTL  (fcntl needed for support of directory change 
+	DNOTIFY fcntl: needed for support of directory change 
 			    notification and perhaps later for file leases)
 
 Per share (per client mount) statistics are available in /proc/fs/cifs/Stats

Modified: branches/linux-2.6bk/fs/cifs/TODO
===================================================================
--- branches/linux-2.6bk/fs/cifs/TODO	2004-12-10 16:51:34 UTC (rev 16)
+++ branches/linux-2.6bk/fs/cifs/TODO	2004-12-10 21:02:21 UTC (rev 17)
@@ -14,7 +14,7 @@
 better)
 
 c) multi-user mounts - multiplexed sessionsetups over single vc
-(ie tcp session) - prettying up needed
+(ie tcp session) - prettying up needed, and more testing needed
 
 d) Kerberos/SPNEGO session setup support - (started)
 
@@ -40,8 +40,8 @@
 extra copy in/out of the socket buffers in some cases.
 
 l) finish support for IPv6.  This is mostly complete but
-needs a simple inet_pton like function to convert ipv6
-addresses in string representation.
+needs a simple conversion of ipv6 to sin6_addr from the
+address in string representation.
 
 m) Better optimize open (and pathbased setfilesize) to reduce the
 oplock breaks coming from windows srv.  Piggyback identical file
@@ -50,23 +50,24 @@
 spurious oplock breaks).
 
 o) Improve performance of readpages by sending more than one read
-at a time when 8 pages or more are requested.  Evaluate whether
-reads larger than 16K would be helpful.
+at a time when 8 pages or more are requested. In conjuntion
+add support for async_cifs_readpages.
 
-p) For support of Windows9x/98 we need to retry failed mounts
-to *SMBSERVER (default server name) with the uppercase hostname
-in the RFC1001 session_init request.
-
-q) Add support for storing symlink and fifo info to Windows servers 
+p) Add support for storing symlink and fifo info to Windows servers 
 in the Extended Attribute format their SFU clients would recognize.
 
-r) Finish fcntl D_NOTIFY support so kde and gnome file list windows
-will autorefresh
+q) Finish fcntl D_NOTIFY support so kde and gnome file list windows
+will autorefresh (started)
 
-s) Add GUI tool to configure /proc/fs/cifs settings and for display of
-the CIFS statistics
+r) Add GUI tool to configure /proc/fs/cifs settings and for display of
+the CIFS statistics (started)
 
-KNOWN BUGS (updated May 27, 2004)
+q) implement support for security and trusted categories of xattrs
+(requires minor protocol extension) to enable better support for SELINUX
+
+r) Implement O_DIRECT flag on open (already supported on mount)
+
+KNOWN BUGS (updated December 10, 2004)
 ====================================
 1) existing symbolic links (Windows reparse points) are recognized but
 can not be created remotely. They are implemented for Samba and those that
@@ -83,9 +84,6 @@
 differences but worth investigating).  Also debug Samba to 
 see why lock test case 7 takes longer to complete to Samba
 than to Windows.
-5) implement search rewind (seeking backward in a readdir), which is
-necessary for one of the "special" subsection of posix file API
-tests in the Connectathon nfs test suite.
 
 Misc testing to do
 ==================

Modified: branches/linux-2.6bk/fs/cifs/connect.c
===================================================================
--- branches/linux-2.6bk/fs/cifs/connect.c	2004-12-10 16:51:34 UTC (rev 16)
+++ branches/linux-2.6bk/fs/cifs/connect.c	2004-12-10 21:02:21 UTC (rev 17)
@@ -330,8 +330,8 @@
 				csocket = server->ssocket;
 				continue;
 			} else {
-				if ((length != sizeof (struct smb_hdr) - 1)
-				    || (pdu_length >
+				if (/*(length != sizeof (struct smb_hdr) - 1)
+				    ||*/ (pdu_length >
 					CIFS_MAX_MSGSIZE + MAX_CIFS_HDR_SIZE)
 				    || (pdu_length <
 					sizeof (struct smb_hdr) - 1)
@@ -341,7 +341,7 @@
 					cERROR(1,
 					    ("Invalid size or format for SMB found with length %d and pdu_length %d",
 						length, pdu_length));
-					cifs_dump_mem("Received Data is: ",temp,sizeof(struct smb_hdr));
+					cifs_dump_mem("Received Data is: ",temp,sizeof(struct smb_hdr)+3);
 					/* could we fix this network corruption by finding next 
 						smb header (instead of killing the session) and
 						restart reading from next valid SMB found? */



More information about the samba-cvs mailing list