From: Steven Whitehouse Date: Tue, 13 Nov 2012 14:50:35 +0000 (+0000) Subject: GFS2: Fix one RG corner case X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=aa8920c96897dd82f0520f9e7db7311b42547ce6;p=linux-beck.git GFS2: Fix one RG corner case For filesystems with only a single resource group, we need to be careful that the allocation loop will not land up with a NULL resource group. This fixes a bug in a previous patch where the gfs2_rgrpd_get_next() function was being used instead of gfs2_rgrpd_get_first() Signed-off-by: Steven Whitehouse --- diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c index 99a619788c65..5625e93bf61f 100644 --- a/fs/gfs2/rgrp.c +++ b/fs/gfs2/rgrp.c @@ -1776,10 +1776,11 @@ static u32 gfs2_orlov_skip(const struct gfs2_inode *ip) static bool gfs2_select_rgrp(struct gfs2_rgrpd **pos, const struct gfs2_rgrpd *begin) { struct gfs2_rgrpd *rgd = *pos; + struct gfs2_sbd *sdp = rgd->rd_sbd; rgd = gfs2_rgrpd_get_next(rgd); if (rgd == NULL) - rgd = gfs2_rgrpd_get_next(NULL); + rgd = gfs2_rgrpd_get_first(sdp); *pos = rgd; if (rgd != begin) /* If we didn't wrap */ return true;