[Cluster-devel] [GFS2 PATCH] GFS2: Allow caching of rindex glock
Steven Whitehouse
swhiteho at redhat.com
Tue Apr 10 13:15:29 UTC 2012
Hi,
Now in both the -fixes and -nmw git trees. Thanks,
Steve.
On Tue, 2012-04-10 at 08:56 -0400, Bob Peterson wrote:
> Hi,
>
> This patch allows caching of the rindex glock. We were previously
> setting the GL_NOCACHE bit when the glock was released. That forced
> the rindex inode to be invalidated, which caused us to re-read
> rindex at the next access. However, it caused the glock to be
> unnecessarily bounced around the cluster. This patch allows
> the glock to remain cached, but it still causes the rindex to be
> re-read once it has been written to by gfs2_grow.
>
> Ben and I have tested single-node gfs2_grow cases and I've tested
> clustered gfs2_grow cases on my four-node cluster.
>
> Regards,
>
> Bob Peterson
> Red Hat File Systems
>
> Signed-off-by: Bob Peterson <rpeterso at redhat.com>
> ---
> Author: Bob Peterson <rpeterso at redhat.com>
> Date: Thu Apr 5 13:59:00 2012 -0500
>
> GFS2: Allow caching of rindex glock
>
> This patch allows the caching of the rindex file. This keeps the
> lock from being bounced around.
>
> diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c
> index 38b7a74..9b2ff0e 100644
> --- a/fs/gfs2/aops.c
> +++ b/fs/gfs2/aops.c
> @@ -807,7 +807,7 @@ static int gfs2_stuffed_write_end(struct inode *inode, struct buffer_head *dibh,
>
> if (inode == sdp->sd_rindex) {
> adjust_fs_space(inode);
> - ip->i_gh.gh_flags |= GL_NOCACHE;
> + sdp->sd_rindex_uptodate = 0;
> }
>
> brelse(dibh);
> @@ -873,7 +873,7 @@ static int gfs2_write_end(struct file *file, struct address_space *mapping,
>
> if (inode == sdp->sd_rindex) {
> adjust_fs_space(inode);
> - ip->i_gh.gh_flags |= GL_NOCACHE;
> + sdp->sd_rindex_uptodate = 0;
> }
>
> brelse(dibh);
>
More information about the Cluster-devel
mailing list