From: Al Viro Date: Tue, 21 Oct 2014 00:39:57 +0000 (-0400) Subject: lustre: switch ll_release_openhandle() to struct inode * X-Git-Tag: firefly_0821_release~176^2~2652^2~11^2~11 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e22fdcc8d75a5ff8ec3020157d9a7a53220c07ef;p=firefly-linux-kernel-4.4.55.git lustre: switch ll_release_openhandle() to struct inode * Signed-off-by: Al Viro --- diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index dd8e505defa5..567874fc5f47 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -430,7 +430,7 @@ static int ll_intent_file_open(struct dentry *dentry, void *lmm, if (!it_disposition(itp, DISP_OPEN_OPEN) || it_open_error(DISP_OPEN_OPEN, itp)) goto out; - ll_release_openhandle(dentry, itp); + ll_release_openhandle(inode, itp); goto out; } @@ -620,7 +620,7 @@ restart: goto out_openerr; } - ll_release_openhandle(file->f_dentry, it); + ll_release_openhandle(inode, it); } (*och_usecount)++; @@ -1366,7 +1366,7 @@ int ll_lov_setstripe_ea_info(struct inode *inode, struct dentry *dentry, if (rc < 0) goto out_req_free; - ll_release_openhandle(dentry, &oit); + ll_release_openhandle(inode, &oit); out_unlock: ll_inode_size_unlock(inode); @@ -1622,22 +1622,21 @@ int ll_put_grouplock(struct inode *inode, struct file *file, unsigned long arg) /** * Close inode open handle * - * \param dentry [in] dentry which contains the inode + * \param inode [in] inode in question * \param it [in,out] intent which contains open info and result * * \retval 0 success * \retval <0 failure */ -int ll_release_openhandle(struct dentry *dentry, struct lookup_intent *it) +int ll_release_openhandle(struct inode *inode, struct lookup_intent *it) { - struct inode *inode = dentry->d_inode; struct obd_client_handle *och; int rc; LASSERT(inode); /* Root ? Do nothing. */ - if (dentry->d_inode->i_sb->s_root == dentry) + if (inode->i_sb->s_root->d_inode == inode) return 0; /* No open handle to close? Move away */ diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h index 40dd3b50c478..77d1c12704b4 100644 --- a/drivers/staging/lustre/lustre/llite/llite_internal.h +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h @@ -748,7 +748,7 @@ int ll_file_release(struct inode *inode, struct file *file); int ll_glimpse_ioctl(struct ll_sb_info *sbi, struct lov_stripe_md *lsm, lstat_t *st); void ll_ioepoch_open(struct ll_inode_info *lli, __u64 ioepoch); -int ll_release_openhandle(struct dentry *, struct lookup_intent *); +int ll_release_openhandle(struct inode *, struct lookup_intent *); int ll_md_real_close(struct inode *inode, fmode_t fmode); void ll_ioepoch_close(struct inode *inode, struct md_op_data *op_data, struct obd_client_handle **och, unsigned long flags); diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c index 2d134831f44a..016ed2de4630 100644 --- a/drivers/staging/lustre/lustre/llite/namei.c +++ b/drivers/staging/lustre/lustre/llite/namei.c @@ -563,7 +563,7 @@ static struct dentry *ll_lookup_it(struct inode *parent, struct dentry *dentry, if ((it->it_op & IT_OPEN) && dentry->d_inode && !S_ISREG(dentry->d_inode->i_mode) && !S_ISDIR(dentry->d_inode->i_mode)) { - ll_release_openhandle(dentry, it); + ll_release_openhandle(dentry->d_inode, it); } ll_lookup_finish_locks(it, dentry);