diff options
author | Steve French <sfrench@us.ibm.com> | 2006-04-21 18:17:42 +0000 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2006-04-21 18:17:42 +0000 |
commit | 0bd4fa977f81c914eb8bada00284d0933825900e (patch) | |
tree | 398b2fea4b7902f53be9d0fc9d9c9c07d427dce1 /fs/cifs/dir.c | |
parent | f4ffaa452e71495a06376f12f772342bc57051fc (diff) | |
download | linux-0bd4fa977f81c914eb8bada00284d0933825900e.tar.gz linux-0bd4fa977f81c914eb8bada00284d0933825900e.tar.xz |
[CIFS] [CIFS] Do not take rename sem on most path based calls (during
building of full path) to avoid hang rename/readdir hang
Reported by Alan Tyson
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/dir.c')
-rw-r--r-- | fs/cifs/dir.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c index 1d0ca3eaaca5..3830dfeb31cf 100644 --- a/fs/cifs/dir.c +++ b/fs/cifs/dir.c @@ -139,9 +139,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode, cifs_sb = CIFS_SB(inode->i_sb); pTcon = cifs_sb->tcon; - mutex_lock(&direntry->d_sb->s_vfs_rename_mutex); full_path = build_path_from_dentry(direntry); - mutex_unlock(&direntry->d_sb->s_vfs_rename_mutex); if(full_path == NULL) { FreeXid(xid); return -ENOMEM; @@ -316,9 +314,7 @@ int cifs_mknod(struct inode *inode, struct dentry *direntry, int mode, cifs_sb = CIFS_SB(inode->i_sb); pTcon = cifs_sb->tcon; - mutex_lock(&direntry->d_sb->s_vfs_rename_mutex); full_path = build_path_from_dentry(direntry); - mutex_unlock(&direntry->d_sb->s_vfs_rename_mutex); if(full_path == NULL) rc = -ENOMEM; else if (pTcon->ses->capabilities & CAP_UNIX) { |