Skip to content

Commit

Permalink
ceph: kill ceph_get_dentry_parent_inode()
Browse files Browse the repository at this point in the history
use vfs helper dget_parent() instead

Signed-off-by: Yan, Zheng <[email protected]>
  • Loading branch information
ukernel authored and idryomov committed Mar 25, 2016
1 parent 315f240 commit 641235d
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 20 deletions.
24 changes: 5 additions & 19 deletions fs/ceph/dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,23 +68,6 @@ int ceph_init_dentry(struct dentry *dentry)
return 0;
}

struct inode *ceph_get_dentry_parent_inode(struct dentry *dentry)
{
struct inode *inode = NULL;

if (!dentry)
return NULL;

spin_lock(&dentry->d_lock);
if (!IS_ROOT(dentry)) {
inode = d_inode(dentry->d_parent);
ihold(inode);
}
spin_unlock(&dentry->d_lock);
return inode;
}


/*
* for readdir, we encode the directory frag and offset within that
* frag into f_pos.
Expand Down Expand Up @@ -1100,6 +1083,7 @@ static int dir_lease_is_valid(struct inode *dir, struct dentry *dentry)
static int ceph_d_revalidate(struct dentry *dentry, unsigned int flags)
{
int valid = 0;
struct dentry *parent;
struct inode *dir;

if (flags & LOOKUP_RCU)
Expand All @@ -1108,7 +1092,8 @@ static int ceph_d_revalidate(struct dentry *dentry, unsigned int flags)
dout("d_revalidate %p '%pd' inode %p offset %lld\n", dentry,
dentry, d_inode(dentry), ceph_dentry(dentry)->offset);

dir = ceph_get_dentry_parent_inode(dentry);
parent = dget_parent(dentry);
dir = d_inode(parent);

/* always trust cached snapped dentries, snapdir dentry */
if (ceph_snap(dir) != CEPH_NOSNAP) {
Expand All @@ -1132,7 +1117,8 @@ static int ceph_d_revalidate(struct dentry *dentry, unsigned int flags)
} else {
ceph_dir_clear_complete(dir);
}
iput(dir);

dput(parent);
return valid;
}

Expand Down
1 change: 0 additions & 1 deletion fs/ceph/super.h
Original file line number Diff line number Diff line change
Expand Up @@ -957,7 +957,6 @@ extern void ceph_dentry_lru_touch(struct dentry *dn);
extern void ceph_dentry_lru_del(struct dentry *dn);
extern void ceph_invalidate_dentry_lease(struct dentry *dentry);
extern unsigned ceph_dentry_hash(struct inode *dir, struct dentry *dn);
extern struct inode *ceph_get_dentry_parent_inode(struct dentry *dentry);
extern void ceph_readdir_cache_release(struct ceph_readdir_cache_control *ctl);

/*
Expand Down

0 comments on commit 641235d

Please sign in to comment.