commit 7704574fe2fc2cc831f3cb46f8fca526c09c6d4b Author: Bob Peterson <bob@ganesha.peterson> Date: Mon Jan 25 14:58:36 2010 -0600 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 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;