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 <swhiteho@redhat.com>
This commit is contained in:
parent
4327a9bf71
commit
aa8920c968
|
@ -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)
|
static bool gfs2_select_rgrp(struct gfs2_rgrpd **pos, const struct gfs2_rgrpd *begin)
|
||||||
{
|
{
|
||||||
struct gfs2_rgrpd *rgd = *pos;
|
struct gfs2_rgrpd *rgd = *pos;
|
||||||
|
struct gfs2_sbd *sdp = rgd->rd_sbd;
|
||||||
|
|
||||||
rgd = gfs2_rgrpd_get_next(rgd);
|
rgd = gfs2_rgrpd_get_next(rgd);
|
||||||
if (rgd == NULL)
|
if (rgd == NULL)
|
||||||
rgd = gfs2_rgrpd_get_next(NULL);
|
rgd = gfs2_rgrpd_get_first(sdp);
|
||||||
*pos = rgd;
|
*pos = rgd;
|
||||||
if (rgd != begin) /* If we didn't wrap */
|
if (rgd != begin) /* If we didn't wrap */
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue