Commit 58884c4d authored by Bob Peterson's avatar Bob Peterson Committed by Steven Whitehouse

GFS2: make sure rgrps are up to date in func gfs2_blk2rgrpd

This patch adds a call to gfs2_rindex_update from function gfs2_blk2rgrpd
and removes calls to it that are made redundant by it. The problem is
that a gfs2_grow can add rgrps to the rindex, then put those rgrps into
use, thus rendering the rindex we read in at mount time incomplete.
Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
parent 6aad1c3d
...@@ -332,6 +332,9 @@ struct gfs2_rgrpd *gfs2_blk2rgrpd(struct gfs2_sbd *sdp, u64 blk, bool exact) ...@@ -332,6 +332,9 @@ struct gfs2_rgrpd *gfs2_blk2rgrpd(struct gfs2_sbd *sdp, u64 blk, bool exact)
struct rb_node *n, *next; struct rb_node *n, *next;
struct gfs2_rgrpd *cur; struct gfs2_rgrpd *cur;
if (gfs2_rindex_update(sdp))
return NULL;
spin_lock(&sdp->sd_rindex_spin); spin_lock(&sdp->sd_rindex_spin);
n = sdp->sd_rindex_tree.rb_node; n = sdp->sd_rindex_tree.rb_node;
while (n) { while (n) {
...@@ -917,10 +920,6 @@ int gfs2_fitrim(struct file *filp, void __user *argp) ...@@ -917,10 +920,6 @@ int gfs2_fitrim(struct file *filp, void __user *argp)
if (!blk_queue_discard(q)) if (!blk_queue_discard(q))
return -EOPNOTSUPP; return -EOPNOTSUPP;
ret = gfs2_rindex_update(sdp);
if (ret)
return ret;
if (argp == NULL) { if (argp == NULL) {
r.start = 0; r.start = 0;
r.len = ULLONG_MAX; r.len = ULLONG_MAX;
...@@ -1671,13 +1670,8 @@ int gfs2_check_blk_type(struct gfs2_sbd *sdp, u64 no_addr, unsigned int type) ...@@ -1671,13 +1670,8 @@ int gfs2_check_blk_type(struct gfs2_sbd *sdp, u64 no_addr, unsigned int type)
{ {
struct gfs2_rgrpd *rgd; struct gfs2_rgrpd *rgd;
struct gfs2_holder rgd_gh; struct gfs2_holder rgd_gh;
int error; int error = -EINVAL;
error = gfs2_rindex_update(sdp);
if (error)
return error;
error = -EINVAL;
rgd = gfs2_blk2rgrpd(sdp, no_addr, 1); rgd = gfs2_blk2rgrpd(sdp, no_addr, 1);
if (!rgd) if (!rgd)
goto fail; goto fail;
......
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