[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