[Cluster-devel] [GFS2] Fix problems relating to execution of files on GFS2
Wendy Cheng
wcheng at redhat.com
Mon Jan 7 18:11:20 UTC 2008
Steven Whitehouse wrote:
> --- a/fs/gfs2/ops_inode.c
> +++ b/fs/gfs2/ops_inode.c
> @@ -113,8 +113,18 @@ static struct dentry *gfs2_lookup(struct inode *dir, struct dentry *dentry,
> if (inode && IS_ERR(inode))
> return ERR_PTR(PTR_ERR(inode));
>
> - if (inode)
> + if (inode) {
> + struct gfs2_glock *gl = GFS2_I(inode)->i_gl;
> + struct gfs2_holder gh;
> + int error;
> + error = gfs2_glock_nq_init(gl, LM_ST_SHARED, LM_FLAG_ANY, &gh);
>
ok, so this shared glock is now added *back*. As I recall, its removal
about one year ago had caused great grief in NFS portion of logic - had
to do a tedious work to make NFS work due to this change. Now, the logic
is reverted - has performance impact been measured (since it is a disk
read) ?
-- Wendy
> + if (error) {
> + iput(inode);
> + return ERR_PTR(error);
> + }
> + gfs2_glock_dq_uninit(&gh);
> return d_splice_alias(inode, dentry);
> + }
> d_add(dentry, inode);
>
> return NULL;
>
>
>
More information about the Cluster-devel
mailing list