Commit 1cba1828 authored by Steve French's avatar Steve French

do not try to grab the i_sem ever during revalidate path since the rename code...

do not try to grab the i_sem ever during revalidate path since the rename code can grab it before we get here
parent e503ef53
Version 1.14 Version 1.14
------------ ------------
Fix incomplete listings of large directories on Samba servers when Unix Fix incomplete listings of large directories on Samba servers when Unix
extensions enabled. Fix oops when smb_buffer can not be allocated 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 Version 1.13
------------ ------------
......
...@@ -154,6 +154,8 @@ of the mount options. Credential files contain two lines ...@@ -154,6 +154,8 @@ of the mount options. Credential files contain two lines
password=your_password password=your_password
2) By specifying the password in the PASSWD environment variable (similarly 2) By specifying the password in the PASSWD environment variable (similarly
the user name can be taken from the USER environment variable). the user name can be taken from the USER environment variable).
3) By specifying the password in a file by name via PASSWD_FILE
4) By specifying the password in a file by file descriptor via PASSWD_FD
If no password is provided, mount.cifs will prompt for password entry If no password is provided, mount.cifs will prompt for password entry
...@@ -251,6 +253,17 @@ A partial list of the supported mount options follows: ...@@ -251,6 +253,17 @@ A partial list of the supported mount options follows:
if guest is specified on the mount options. If no if guest is specified on the mount options. If no
password is specified a null password will be used. password is specified a null password will be used.
The mount.cifs mount helper also accepts a few mount options before -o
including:
-S take password from stdin (equivalent to setting the environment
variable "PASSWD_FD=0"
-V print mount.cifs version
-? display simple usage information
With recent 2.6 kernel versions of modutils, the version of the cifs kernel
module can be displayed via modinfo.
Misc /proc/fs/cifs Flags and Debug Info Misc /proc/fs/cifs Flags and Debug Info
======================================= =======================================
Informational pseudo-files: Informational pseudo-files:
......
version 1.0.2 January 29, 2004 version 1.14 May 14, 2004
A Partial List of Known Problems and Missing Features A Partial List of Known Problems and Missing Features
===================================================== =====================================================
...@@ -21,8 +21,8 @@ e) NTLMv2 authentication (mostly implemented) ...@@ -21,8 +21,8 @@ e) NTLMv2 authentication (mostly implemented)
f) MD5-HMAC signing SMB PDUs when SPNEGO style SessionSetup f) MD5-HMAC signing SMB PDUs when SPNEGO style SessionSetup
used (Kerberos or NTLMSSP). Signing alreadyimplemented for NTLM used (Kerberos or NTLMSSP). Signing alreadyimplemented for NTLM
and raw NTLMSSP already. This is important when enabling and raw NTLMSSP already. This is important when enabling
extended security and mounting to Windows 2003 Servers extended security and mounting to Windows 2003 Servers
f) Directory entry caching relies on a 1 second timer, rather than f) Directory entry caching relies on a 1 second timer, rather than
using FindNotify or equivalent. - (started) using FindNotify or equivalent. - (started)
...@@ -34,7 +34,8 @@ h) quota support ...@@ -34,7 +34,8 @@ h) quota support
i) support for the Linux 2.5 kernel new feature get_xattr and set_xattr i) support for the Linux 2.5 kernel new feature get_xattr and set_xattr
which will allow us to expose dos attributes as well as real which will allow us to expose dos attributes as well as real
ACLs ACLs. This support has been started in the current code, but is
ifdeffed out.
k) finish writepages support (multi-page write behind for improved k) finish writepages support (multi-page write behind for improved
performance) and syncpage performance) and syncpage
...@@ -42,7 +43,9 @@ performance) and syncpage ...@@ -42,7 +43,9 @@ performance) and syncpage
l) hook lower into the sockets api (as NFS/SunRPC does) to avoid the l) hook lower into the sockets api (as NFS/SunRPC does) to avoid the
extra copy in/out of the socket buffers in some cases. extra copy in/out of the socket buffers in some cases.
m) finish support for IPv6 m) finish support for IPv6. This is mostly complete but
needs a simple inet_pton like function to convert ipv6
addresses in string representation.
o) Better optimize open (and pathbased setfilesize) to reduce the o) Better optimize open (and pathbased setfilesize) to reduce the
oplock breaks coming from windows srv. Piggyback identical file oplock breaks coming from windows srv. Piggyback identical file
...@@ -53,8 +56,18 @@ spurious oplock breaks). ...@@ -53,8 +56,18 @@ spurious oplock breaks).
p) Improve performance of readpages by sending more than one read p) Improve performance of readpages by sending more than one read
at a time when 8 pages or more are requested. at a time when 8 pages or more are requested.
q) 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.
KNOWN BUGS (updated January 30, 2004) r) Add Extended Attributed support (for storing UID/GID info
to Windows servers)
s) Finish fcntl D_NOTIFY support so kde and gnome file list windows
will autorefresh
KNOWN BUGS (updated May 14, 2004)
==================================== ====================================
1) existing symbolic links (Windows reparse points) are recognized but 1) existing symbolic links (Windows reparse points) are recognized but
can not be created remotely. They are implemented for Samba and those that can not be created remotely. They are implemented for Samba and those that
...@@ -64,20 +77,22 @@ symlink text beginning with slash ...@@ -64,20 +77,22 @@ symlink text beginning with slash
but recognizes them 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) and has not been reproduced recently.
4) debug connectathon special test case nfs_idem (which does NTFS partitions do not have this problem.
some invalid symlink naming, or at least what Samba thinks 4) debug connectation lock test case 10 which fails against
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 Samba (may be unmappable due to POSIX to Windows lock model
differences but worth investigating). Also debug Samba to differences but worth investigating). Also debug Samba to
see why lock test case 7 takes longer to complete to Samba see why lock test case 7 takes longer to complete to Samba
than to Windows. than to Windows.
5) prepare_write does not initialize pages properly when partial
page writes begin in the middle of a page (pages can get zeroed).
6) Write caching done incorrectly when files are only opened
with write permission by the application.
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. Return max path name in stat -f information
2) 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.
......
...@@ -647,9 +647,12 @@ cifs_revalidate(struct dentry *direntry) ...@@ -647,9 +647,12 @@ cifs_revalidate(struct dentry *direntry)
} }
} }
/* can not grab this sem since kernel filesys locking
documentation indicates i_sem may be taken by the kernel
on lookup and rename which could deadlock if we grab
the i_sem here as well */
/* down(&direntry->d_inode->i_sem);*/
/* need to write out dirty pages here */ /* need to write out dirty pages here */
down(&direntry->d_inode->i_sem);
if(direntry->d_inode->i_mapping) { if(direntry->d_inode->i_mapping) {
/* do we need to lock inode until after invalidate completes below? */ /* do we need to lock inode until after invalidate completes below? */
filemap_fdatawrite(direntry->d_inode->i_mapping); filemap_fdatawrite(direntry->d_inode->i_mapping);
...@@ -663,9 +666,7 @@ cifs_revalidate(struct dentry *direntry) ...@@ -663,9 +666,7 @@ cifs_revalidate(struct dentry *direntry)
invalidate_remote_inode(direntry->d_inode); invalidate_remote_inode(direntry->d_inode);
} }
} }
/* up(&direntry->d_inode->i_sem);*/
up(&direntry->d_inode->i_sem);
if (full_path) if (full_path)
kfree(full_path); kfree(full_path);
......
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