|
@@ -325,10 +325,13 @@ static struct dentry * __d_find_alias(struct inode *inode, int want_discon)
|
|
|
|
|
|
struct dentry * d_find_alias(struct inode *inode)
|
|
|
{
|
|
|
- struct dentry *de;
|
|
|
- spin_lock(&dcache_lock);
|
|
|
- de = __d_find_alias(inode, 0);
|
|
|
- spin_unlock(&dcache_lock);
|
|
|
+ struct dentry *de = NULL;
|
|
|
+
|
|
|
+ if (!list_empty(&inode->i_dentry)) {
|
|
|
+ spin_lock(&dcache_lock);
|
|
|
+ de = __d_find_alias(inode, 0);
|
|
|
+ spin_unlock(&dcache_lock);
|
|
|
+ }
|
|
|
return de;
|
|
|
}
|
|
|
|