[Cluster-devel] [PATCH 2/2] libgfs2: fix compute_rgrp_layout
Carlos Maiolino
cmaiolino at redhat.com
Fri Sep 2 20:42:48 UTC 2011
The function uses the same buggy trick as
gfs2_grow to calculate rgsize, which cause
a segmentation fault if there is only one
RG into the filesystem.
This patch makes compute_rgrp_layout() to
use figure_out_rgsize() function.
Signed-off-by: Carlos Maiolino <cmaiolino at redhat.com>
---
gfs2/libgfs2/fs_geometry.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gfs2/libgfs2/fs_geometry.c b/gfs2/libgfs2/fs_geometry.c
index 2b70f11..bdc8225 100644
--- a/gfs2/libgfs2/fs_geometry.c
+++ b/gfs2/libgfs2/fs_geometry.c
@@ -80,8 +80,8 @@ void compute_rgrp_layout(struct gfs2_sbd *sdp, struct osi_root *rgtree,
struct device *dev;
struct rgrp_tree *rl, *rlast = NULL, *rlast2 = NULL;
struct osi_node *n, *next = NULL;
- unsigned int rgrp = 0, nrgrp;
- uint64_t rglength, rgaddr;
+ unsigned int rgrp = 0, nrgrp, rglength;
+ uint64_t rgaddr;
sdp->new_rgrps = 0;
dev = &sdp->device;
@@ -113,7 +113,7 @@ void compute_rgrp_layout(struct gfs2_sbd *sdp, struct osi_root *rgtree,
rlast = rl;
}
rlast->start = rlast->ri.ri_addr;
- rglength = rlast->ri.ri_addr - rlast2->ri.ri_addr;
+ rglength = figure_out_rgsize(sdp);
rlast->length = rglength;
old_length = rlast->ri.ri_addr + rglength;
new_chunk = dev->length - old_length;
--
1.7.6
More information about the Cluster-devel
mailing list