On Wed, 2012-07-18 at 11:56 -0400, Abhijith Das wrote:
> In the unlikely setup where there's only one resource group in the gfs2 filesystem, gfs2_rgrpd_get_next() returns a NULL rgd that is not dealt with properly, causing a kernel NULL ptr dereference. This patch fixes this issue.
>
> This bug was reported in rhel6: https://bugzilla.redhat.com/show_bug.cgi?id=838638
>
> Signed-off-by: Abhi Das <adas@redhat.com>
>
>
> diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
> index e53d0a1..fb70792 100644
> --- a/fs/gfs2/rgrp.c
> +++ b/fs/gfs2/rgrp.c
> @@ -1276,6 +1276,7 @@ int gfs2_inplace_reserve(struct gfs2_inode *ip, u32 requested)
> /* fall through */
> case GLR_TRYFAILED:
> rgd = gfs2_rgrpd_get_next(rgd);
> + rgd = rgd ? : begin; /* if NULL, wrap */
> if (rgd != begin) /* If we didn't wrap */
> break;
>
>