From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carlos Maiolino Date: Fri, 2 Sep 2011 17:42:48 -0300 Subject: [Cluster-devel] [PATCH 2/2] libgfs2: fix compute_rgrp_layout In-Reply-To: <1314996168-4369-1-git-send-email-cmaiolino@redhat.com> References: <1314996168-4369-1-git-send-email-cmaiolino@redhat.com> Message-ID: <1314996168-4369-2-git-send-email-cmaiolino@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 --- 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