From: Sage Weil Date: Tue, 5 Feb 2013 21:36:05 +0000 (-0800) Subject: ceph: avoid useless ceph_get_dentry_parent_inode() in ceph_rename() X-Git-Tag: v3.15-rc1~61^2~67 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=180061a58c17681dd236e5059ba57fe092dbe368;p=~emulex%2Finfiniband.git ceph: avoid useless ceph_get_dentry_parent_inode() in ceph_rename() This is just old_dir; no reason to abuse the dcache pointers. Reported-by: Al Viro Signed-off-by: Sage Weil Reviewed-by: Yan, Zheng --- diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c index e9918a0306d..e07973718eb 100644 --- a/fs/ceph/dir.c +++ b/fs/ceph/dir.c @@ -911,10 +911,11 @@ static int ceph_rename(struct inode *old_dir, struct dentry *old_dentry, req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_RENAME, USE_AUTH_MDS); if (IS_ERR(req)) return PTR_ERR(req); + ihold(old_dir); req->r_dentry = dget(new_dentry); req->r_num_caps = 2; req->r_old_dentry = dget(old_dentry); - req->r_old_dentry_dir = ceph_get_dentry_parent_inode(old_dentry); + req->r_old_dentry_dir = old_dir; req->r_locked_dir = new_dir; req->r_old_dentry_drop = CEPH_CAP_FILE_SHARED; req->r_old_dentry_unless = CEPH_CAP_FILE_EXCL;