[Cluster-devel] [PATCH] GFS2: drop rindex glock to refresh rindex list

Steven Whitehouse swhiteho at redhat.com
Wed Nov 11 10:06:26 UTC 2009


Hi,

Now in the -nmw git tree. Thanks,

Steve.

On Tue, 2009-11-10 at 12:54 -0600, Benjamin Marzinski wrote:
> When a gfs2 filesystem is grown, it needs to rebuild the rindex list to be able
> to use the new space.  gfs2 does this when the rindex is marked not uptodate,
> which happens when the rindex glock is dropped.  However, on a single node
> setup, there is never any reason to drop the rindex glock, so gfs2 never
> invalidates the the rindex. This patch makes gfs2 automatically drop the
> rindex glock after filesystem grows, so it can refresh the rindex list.
> 
> Signed-off-by: Benjamin Marzinski <bmarzins at redhat.com>
> ---
>  fs/gfs2/aops.c |    8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> Index: gfs2-2.6-nmw/fs/gfs2/aops.c
> ===================================================================
> --- gfs2-2.6-nmw.orig/fs/gfs2/aops.c
> +++ gfs2-2.6-nmw/fs/gfs2/aops.c
> @@ -819,8 +819,10 @@ static int gfs2_stuffed_write_end(struct
>  		mark_inode_dirty(inode);
>  	}
>  
> -	if (inode == sdp->sd_rindex)
> +	if (inode == sdp->sd_rindex) {
>  		adjust_fs_space(inode);
> +		ip->i_gh.gh_flags |= GL_NOCACHE;
> +	}
>  
>  	brelse(dibh);
>  	gfs2_trans_end(sdp);
> @@ -889,8 +891,10 @@ static int gfs2_write_end(struct file *f
>  		mark_inode_dirty(inode);
>  	}
>  
> -	if (inode == sdp->sd_rindex)
> +	if (inode == sdp->sd_rindex) {
>  		adjust_fs_space(inode);
> +		ip->i_gh.gh_flags |= GL_NOCACHE;
> +	}
>  
>  	brelse(dibh);
>  	gfs2_trans_end(sdp);
> 




More information about the Cluster-devel mailing list