Commit aa8920c9 authored by Steven Whitehouse's avatar Steven Whitehouse

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: default avatarSteven Whitehouse <swhiteho@redhat.com>
parent 4327a9bf
...@@ -1776,10 +1776,11 @@ static u32 gfs2_orlov_skip(const struct gfs2_inode *ip) ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment