|
@@ -48,10 +48,8 @@ cifs_hardlink(struct dentry *old_file, struct inode *inode,
|
|
/* No need to check for cross device links since server will do that
|
|
/* No need to check for cross device links since server will do that
|
|
BB note DFS case in future though (when we may have to check) */
|
|
BB note DFS case in future though (when we may have to check) */
|
|
|
|
|
|
- mutex_lock(&inode->i_sb->s_vfs_rename_mutex);
|
|
|
|
fromName = build_path_from_dentry(old_file);
|
|
fromName = build_path_from_dentry(old_file);
|
|
toName = build_path_from_dentry(direntry);
|
|
toName = build_path_from_dentry(direntry);
|
|
- mutex_unlock(&inode->i_sb->s_vfs_rename_mutex);
|
|
|
|
if((fromName == NULL) || (toName == NULL)) {
|
|
if((fromName == NULL) || (toName == NULL)) {
|
|
rc = -ENOMEM;
|
|
rc = -ENOMEM;
|
|
goto cifs_hl_exit;
|
|
goto cifs_hl_exit;
|
|
@@ -103,9 +101,7 @@ cifs_follow_link(struct dentry *direntry, struct nameidata *nd)
|
|
|
|
|
|
xid = GetXid();
|
|
xid = GetXid();
|
|
|
|
|
|
- mutex_lock(&direntry->d_sb->s_vfs_rename_mutex);
|
|
|
|
full_path = build_path_from_dentry(direntry);
|
|
full_path = build_path_from_dentry(direntry);
|
|
- mutex_unlock(&direntry->d_sb->s_vfs_rename_mutex);
|
|
|
|
|
|
|
|
if (!full_path)
|
|
if (!full_path)
|
|
goto out_no_free;
|
|
goto out_no_free;
|
|
@@ -164,9 +160,7 @@ cifs_symlink(struct inode *inode, struct dentry *direntry, const char *symname)
|
|
cifs_sb = CIFS_SB(inode->i_sb);
|
|
cifs_sb = CIFS_SB(inode->i_sb);
|
|
pTcon = cifs_sb->tcon;
|
|
pTcon = cifs_sb->tcon;
|
|
|
|
|
|
- mutex_lock(&inode->i_sb->s_vfs_rename_mutex);
|
|
|
|
full_path = build_path_from_dentry(direntry);
|
|
full_path = build_path_from_dentry(direntry);
|
|
- mutex_unlock(&inode->i_sb->s_vfs_rename_mutex);
|
|
|
|
|
|
|
|
if(full_path == NULL) {
|
|
if(full_path == NULL) {
|
|
FreeXid(xid);
|
|
FreeXid(xid);
|