cluster: RHEL56 - fsck.gfs2: Free, don't invalidate, dinodes with bad depth

Bob Peterson rpeterso at fedoraproject.org
Sat Apr 10 04:54:11 UTC 2010


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=7704574fe2fc2cc831f3cb46f8fca526c09c6d4b
Commit:        7704574fe2fc2cc831f3cb46f8fca526c09c6d4b
Parent:        259dcbe89d0edf896f4a504bc2d627df0d6e4e9f
Author:        Bob Peterson <bob at ganesha.peterson>
AuthorDate:    Mon Jan 25 14:58:36 2010 -0600
Committer:     Bob Peterson <rpeterso at redhat.com>
CommitterDate: Fri Apr 9 23:43:47 2010 -0500

fsck.gfs2: Free, don't invalidate, dinodes with bad depth

This patch makes fsck.gfs2 free up dinodes with an invalid depth
rather than marking them invalid.  If we mark them invalid, the
invalid depth itself will confuse the code that later tries to free
the metadata associated with the bad dinode.

rhbz#455300
---
 gfs2/fsck/pass1.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/gfs2/fsck/pass1.c b/gfs2/fsck/pass1.c
index 9fce798..5b3b032 100644
--- a/gfs2/fsck/pass1.c
+++ b/gfs2/fsck/pass1.c
@@ -1055,7 +1055,7 @@ static int handle_di(struct gfs2_sbd *sdp, struct gfs2_buffer_head *bh)
 				 ip->i_di.di_depth,
 				 (1 >> (ip->i_di.di_size/sizeof(uint64_t))));
 			if(fsck_blockmap_set(ip, block, _("bad depth"),
-					     gfs2_meta_inval)) {
+					     gfs2_block_free)) {
 				stack;
 				fsck_inode_put(&ip);
 				return -1;


More information about the cluster-commits mailing list