Revert "ceph: keep reference to parent inode on ceph_dentry"
This reverts commit 97d79b403e
.
This fails to account for d_parent changes due to rename or disconnected
dentries due to submounts or NFS reexports.
Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
@@ -60,7 +60,6 @@ int ceph_init_dentry(struct dentry *dentry)
|
|||||||
}
|
}
|
||||||
di->dentry = dentry;
|
di->dentry = dentry;
|
||||||
di->lease_session = NULL;
|
di->lease_session = NULL;
|
||||||
di->parent_inode = igrab(dentry->d_parent->d_inode);
|
|
||||||
dentry->d_fsdata = di;
|
dentry->d_fsdata = di;
|
||||||
dentry->d_time = jiffies;
|
dentry->d_time = jiffies;
|
||||||
ceph_dentry_lru_add(dentry);
|
ceph_dentry_lru_add(dentry);
|
||||||
@@ -1034,7 +1033,7 @@ static void ceph_dentry_release(struct dentry *dentry)
|
|||||||
u64 snapid = CEPH_NOSNAP;
|
u64 snapid = CEPH_NOSNAP;
|
||||||
|
|
||||||
if (!IS_ROOT(dentry)) {
|
if (!IS_ROOT(dentry)) {
|
||||||
parent_inode = di->parent_inode;
|
parent_inode = dentry->d_parent->d_inode;
|
||||||
if (parent_inode)
|
if (parent_inode)
|
||||||
snapid = ceph_snap(parent_inode);
|
snapid = ceph_snap(parent_inode);
|
||||||
}
|
}
|
||||||
@@ -1059,8 +1058,6 @@ static void ceph_dentry_release(struct dentry *dentry)
|
|||||||
kmem_cache_free(ceph_dentry_cachep, di);
|
kmem_cache_free(ceph_dentry_cachep, di);
|
||||||
dentry->d_fsdata = NULL;
|
dentry->d_fsdata = NULL;
|
||||||
}
|
}
|
||||||
if (parent_inode)
|
|
||||||
iput(parent_inode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ceph_snapdir_d_revalidate(struct dentry *dentry,
|
static int ceph_snapdir_d_revalidate(struct dentry *dentry,
|
||||||
|
@@ -207,7 +207,6 @@ struct ceph_dentry_info {
|
|||||||
struct dentry *dentry;
|
struct dentry *dentry;
|
||||||
u64 time;
|
u64 time;
|
||||||
u64 offset;
|
u64 offset;
|
||||||
struct inode *parent_inode;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ceph_inode_xattrs_info {
|
struct ceph_inode_xattrs_info {
|
||||||
|
Reference in New Issue
Block a user