[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