|
@@ -51,8 +51,7 @@ int ceph_init_dentry(struct dentry *dentry)
|
|
|
goto out_unlock;
|
|
|
}
|
|
|
|
|
|
- if (dentry->d_parent == NULL || /* nfs fh_to_dentry */
|
|
|
- ceph_snap(dentry->d_parent->d_inode) == CEPH_NOSNAP)
|
|
|
+ if (ceph_snap(dentry->d_parent->d_inode) == CEPH_NOSNAP)
|
|
|
d_set_d_op(dentry, &ceph_dentry_ops);
|
|
|
else if (ceph_snap(dentry->d_parent->d_inode) == CEPH_SNAPDIR)
|
|
|
d_set_d_op(dentry, &ceph_snapdir_dentry_ops);
|
|
@@ -79,7 +78,7 @@ struct inode *ceph_get_dentry_parent_inode(struct dentry *dentry)
|
|
|
return NULL;
|
|
|
|
|
|
spin_lock(&dentry->d_lock);
|
|
|
- if (dentry->d_parent) {
|
|
|
+ if (!IS_ROOT(dentry)) {
|
|
|
inode = dentry->d_parent->d_inode;
|
|
|
ihold(inode);
|
|
|
}
|
|
@@ -1140,7 +1139,7 @@ static void ceph_d_prune(struct dentry *dentry)
|
|
|
dout("ceph_d_prune %p\n", dentry);
|
|
|
|
|
|
/* do we have a valid parent? */
|
|
|
- if (!dentry->d_parent || IS_ROOT(dentry))
|
|
|
+ if (IS_ROOT(dentry))
|
|
|
return;
|
|
|
|
|
|
/* if we are not hashed, we don't affect D_COMPLETE */
|