diff options
Diffstat (limited to 'fs/dcache.c')
| -rw-r--r-- | fs/dcache.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index e9a07b2a094..b60ddc41d78 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -2404,6 +2404,7 @@ struct dentry *d_materialise_unique(struct dentry *dentry, struct inode *inode)  			if (d_ancestor(alias, dentry)) {  				/* Check for loops */  				actual = ERR_PTR(-ELOOP); +				spin_unlock(&inode->i_lock);  			} else if (IS_ROOT(alias)) {  				/* Is this an anonymous mountpoint that we  				 * could splice into our tree? */ @@ -2413,7 +2414,7 @@ struct dentry *d_materialise_unique(struct dentry *dentry, struct inode *inode)  				goto found;  			} else {  				/* Nope, but we must(!) avoid directory -				 * aliasing */ +				 * aliasing. This drops inode->i_lock */  				actual = __d_unalias(inode, dentry, alias);  			}  			write_sequnlock(&rename_lock);  |