This is the mail archive of the
cluster-cvs@sourceware.org
mailing list for the cluster.
cluster: STABLE2 - GFS2: gfs2_fsck segfault in rindex repair code
- From: Bob Peterson <rpeterso at fedoraproject dot org>
- To: cluster-cvs-relay at redhat dot com
- Date: Tue, 4 Aug 2009 22:07:48 +0000 (UTC)
- Subject: cluster: STABLE2 - GFS2: gfs2_fsck segfault in rindex repair code
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=5dfd1c68fc5821ca877712dac998ce87e1e54b63
Commit: 5dfd1c68fc5821ca877712dac998ce87e1e54b63
Parent: 26464d4bc01f1ad37c4456e85cf0c2af73f71778
Author: Bob Peterson <rpeterso@redhat.com>
AuthorDate: Tue Aug 4 16:52:01 2009 -0500
Committer: Bob Peterson <rpeterso@redhat.com>
CommitterDate: Tue Aug 4 16:53:58 2009 -0500
GFS2: gfs2_fsck segfault in rindex repair code
bz 514018
---
gfs2/fsck/rgrepair.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/gfs2/fsck/rgrepair.c b/gfs2/fsck/rgrepair.c
index 599cae6..66b7a4e 100644
--- a/gfs2/fsck/rgrepair.c
+++ b/gfs2/fsck/rgrepair.c
@@ -356,6 +356,11 @@ int gfs2_rindex_calculate(struct gfs2_sbd *sdp, osi_list_t *ret_list,
/* ----------------------------------------------------------------- */
*num_rgs = sdp->md.riinode->i_di.di_size / sizeof(struct gfs2_rindex);
log_warn("L2: number of rgs in the index = %d.\n", *num_rgs);
+ /* Move the rg list to the return list */
+ ret_list->next = sdp->rglist.next;
+ ret_list->prev = sdp->rglist.prev;
+ ret_list->next->prev = ret_list;
+ ret_list->prev->next = ret_list;
return 0;
}
@@ -527,12 +532,11 @@ int rg_repair(struct gfs2_sbd *sdp, int trust_lvl, int *rg_count)
free(actual->bh);
if (actual->bits)
free(actual->bits);
- gfs2_compute_bitstructs(sdp, actual);
}
else
log_err("RG index not fixed.\n");
+ gfs2_compute_bitstructs(sdp, actual);
rindex_modified = FALSE;
-
}
}
/* ------------------------------------------------------------- */