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