diff options
Diffstat (limited to 'fs/nfs/dir.c')
-rw-r--r-- | fs/nfs/dir.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 12de824edb5c..eb77471b8823 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
@@ -1718,11 +1718,9 @@ static int nfs_unlink(struct inode *dir, struct dentry *dentry) | |||
1718 | dfprintk(VFS, "NFS: unlink(%s/%ld, %s)\n", dir->i_sb->s_id, | 1718 | dfprintk(VFS, "NFS: unlink(%s/%ld, %s)\n", dir->i_sb->s_id, |
1719 | dir->i_ino, dentry->d_name.name); | 1719 | dir->i_ino, dentry->d_name.name); |
1720 | 1720 | ||
1721 | spin_lock(&dcache_lock); | ||
1722 | spin_lock(&dentry->d_lock); | 1721 | spin_lock(&dentry->d_lock); |
1723 | if (dentry->d_count > 1) { | 1722 | if (dentry->d_count > 1) { |
1724 | spin_unlock(&dentry->d_lock); | 1723 | spin_unlock(&dentry->d_lock); |
1725 | spin_unlock(&dcache_lock); | ||
1726 | /* Start asynchronous writeout of the inode */ | 1724 | /* Start asynchronous writeout of the inode */ |
1727 | write_inode_now(dentry->d_inode, 0); | 1725 | write_inode_now(dentry->d_inode, 0); |
1728 | error = nfs_sillyrename(dir, dentry); | 1726 | error = nfs_sillyrename(dir, dentry); |
@@ -1733,7 +1731,6 @@ static int nfs_unlink(struct inode *dir, struct dentry *dentry) | |||
1733 | need_rehash = 1; | 1731 | need_rehash = 1; |
1734 | } | 1732 | } |
1735 | spin_unlock(&dentry->d_lock); | 1733 | spin_unlock(&dentry->d_lock); |
1736 | spin_unlock(&dcache_lock); | ||
1737 | error = nfs_safe_remove(dentry); | 1734 | error = nfs_safe_remove(dentry); |
1738 | if (!error || error == -ENOENT) { | 1735 | if (!error || error == -ENOENT) { |
1739 | nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); | 1736 | nfs_set_verifier(dentry, nfs_save_change_attribute(dir)); |