Commit c745d58e authored by Steve French's avatar Steve French

update rfc1001 handling

parent 7cadd63d
Version 1.11 Version 1.11
------------ ------------
Better port 139 support to Windows servers (RFC1001/RFC1002 Session_Initialize) also Better port 139 support to Windows servers (RFC1001/RFC1002 Session_Initialize) also
now allowing support for specifying client netbiosname. now allowing support for specifying client netbiosname. NT4 support added.
Version 1.10 Version 1.10
------------ ------------
......
...@@ -148,8 +148,8 @@ If no password is provided, mount.cifs will prompt for password entry ...@@ -148,8 +148,8 @@ If no password is provided, mount.cifs will prompt for password entry
Restrictions Restrictions
============ ============
Servers must support the NTLM SMB dialect (which is the most recent, supported Servers must support the NTLM SMB dialect (which is the most recent, supported
by Samba and Windows NT, 2000 and XP and many other SMB/CIFS servers) and 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 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 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.
...@@ -276,6 +276,15 @@ and for more extensive tracing including the start of smb requests and responses ...@@ -276,6 +276,15 @@ and for more extensive tracing including the start of smb requests and responses
echo 1 > /proc/fs/cifs/traceSMB echo 1 > /proc/fs/cifs/traceSMB
Three other experimental features are under development and to test
require enabling an ifdef (e.g. by adding "#define CIFS_FCNTL" in cifsglob.h)
CIFS_QUOTA
CIFS_XATTR
CIFS_FCNTL (fcntl needed for support of directory change notification)
Also note that "cat /proc/fs/cifs/DebugData" will display some information about Also note that "cat /proc/fs/cifs/DebugData" will display some information about
the active sessions and the shares that are mounted. Note: NTLMv2 enablement the active sessions and the shares that are mounted. Note: NTLMv2 enablement
will not work since they its implementation is not quite complete yet. will not work since they its implementation is not quite complete yet.
......
...@@ -65,14 +65,27 @@ but recognizes them ...@@ -65,14 +65,27 @@ but recognizes them
3) create of new files to FAT partitions on Windows servers can 3) create of new files to FAT partitions on Windows servers can
succeed but still return access denied (appears to be Windows succeed but still return access denied (appears to be Windows
not client problem). NTFS partitions do not have this problem. not client problem). NTFS partitions do not have this problem.
4) debug connectathon special test case nfs_idem (which does
some invalid symlink naming, or at least what Samba thinks
is an invalid symlink target).
5) debug connectation lock test case 10 which fails against
Samba (may be unmappable due to POSIX to Windows lock model
differences but worth investigating). Also debug Samba to
see why lock test case 7 takes longer to complete to Samba
than to Windows.
Misc testing to do Misc testing to do
================= =================
1) check out max path names and max path name components against various server 1) check out max path names and max path name components against various server
types. types.
2) Run dbench. Modify file portion of ltp so it can run against a mounted network 2) Modify file portion of ltp so it can run against a mounted network
share and run it against cifs vfs. share and run it against cifs vfs.
3) Additional performance testing and optimization using iozone and similar tools. 3) Additional performance testing and optimization using iozone and similar -
there are some easy changes that can be done to parallelize sequential writes,
and when signing is disabled to request larger read sizes (larger than
negotiated size) and send larger write sizes to modern servers.
4) More exhaustively test the recently added NT4 support
...@@ -672,8 +672,10 @@ static int cifs_oplock_thread(void * dummyarg) ...@@ -672,8 +672,10 @@ static int cifs_oplock_thread(void * dummyarg)
/* down(&inode->i_sem);*/ /* down(&inode->i_sem);*/
if (S_ISREG(inode->i_mode)) { if (S_ISREG(inode->i_mode)) {
rc = filemap_fdatawrite(inode->i_mapping); rc = filemap_fdatawrite(inode->i_mapping);
if(CIFS_I(inode)->clientCanCacheRead == 0) if(CIFS_I(inode)->clientCanCacheRead == 0) {
filemap_fdatawait(inode->i_mapping);
invalidate_remote_inode(inode); invalidate_remote_inode(inode);
}
} else } else
rc = 0; rc = 0;
/* up(&inode->i_sem);*/ /* up(&inode->i_sem);*/
...@@ -772,6 +774,6 @@ exit_cifs(void) ...@@ -772,6 +774,6 @@ exit_cifs(void)
MODULE_AUTHOR("Steve French <sfrench@us.ibm.com>"); MODULE_AUTHOR("Steve French <sfrench@us.ibm.com>");
MODULE_LICENSE("GPL"); /* combination of LGPL + GPL source behaves as GPL */ MODULE_LICENSE("GPL"); /* combination of LGPL + GPL source behaves as GPL */
MODULE_DESCRIPTION MODULE_DESCRIPTION
("VFS to access servers complying with the SNIA CIFS Specification e.g. Samba and Windows"); ("VFS to access servers complying with the SNIA CIFS Specification e.g. Samba and Windows Revision: 1.11");
module_init(init_cifs) module_init(init_cifs)
module_exit(exit_cifs) module_exit(exit_cifs)
...@@ -139,6 +139,7 @@ struct TCP_Server_Info { ...@@ -139,6 +139,7 @@ struct TCP_Server_Info {
int capabilities; /* allow selective disabling of caps by smb sess */ int capabilities; /* allow selective disabling of caps by smb sess */
__u16 timeZone; __u16 timeZone;
char cryptKey[CIFS_CRYPTO_KEY_SIZE]; char cryptKey[CIFS_CRYPTO_KEY_SIZE];
char workstation_RFC1001_name[16]; /* 16th byte is always zero */
}; };
/* /*
...@@ -174,7 +175,6 @@ struct cifsSesInfo { ...@@ -174,7 +175,6 @@ struct cifsSesInfo {
uid_t linux_uid; /* local Linux uid */ uid_t linux_uid; /* local Linux uid */
int capabilities; int capabilities;
char serverName[SERVER_NAME_LEN_WITH_NULL * 2]; /* BB make bigger for tcp names - will ipv6 and sctp addresses fit here?? */ char serverName[SERVER_NAME_LEN_WITH_NULL * 2]; /* BB make bigger for tcp names - will ipv6 and sctp addresses fit here?? */
char workstation_RFC1001_name[15]; /* 16th byte is always zero */
char userName[MAX_USERNAME_SIZE + 1]; char userName[MAX_USERNAME_SIZE + 1];
char domainName[MAX_USERNAME_SIZE + 1]; char domainName[MAX_USERNAME_SIZE + 1];
char * password; char * password;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment