From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Price Date: Tue, 15 Mar 2016 17:47:44 +0000 Subject: [Cluster-devel] [gfs2-utils PATCH 00/11] Misc patches regarding corrupt rindex handling In-Reply-To: References: Message-ID: <56E84AC0.4020202@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi Bob, On 25/02/16 17:04, Bob Peterson wrote: > Hi, > > These patches are probably best handled as separate items, rather than as > a set, but I didn't want to send out 11 separate emails. > > This is a collection of patches I developed while debugging some rather > complex problems involving the rebuilding of corrupt or missing rindex > system files by fsck.gfs2. It also fixes some problems whereby gfs2_edit > or other utils crash and burn due to corrupt rindex files. > > Regards, > > Bob Peterson > Red Hat File Systems > > Signed-off-by: Bob Peterson > --- > Bob Peterson (11): > libgfs2: Backport rbtree fixes from upstream > libgfs2: Check for obvious corruption reading rindex > libgfs2: Change rgrp counts to be uint64_t > gfs2_edit: Don't reference an empty rgrp tree > fsck.gfs2: Read jindex before making rindex repairs > fsck.gfs2: better reporting of false positive rgrp identification > fsck.gfs2: Minor reformatting > fsck.gfs2: Ditch variable rgcount_from_index > fsck.gfs2: Add ability to fix rindex file size > fsck.gfs2: Do not try to overrun the max rgrps that fit inside rindex > fsck.gfs2: Detect multiple rgrp grow segments Consider these ACKed. I've taken a look through them and they look fine, though I'm not hugely familiar with that part of the fsck code. Coverity is happy with them too. Outside of the scope of this set, I noticed in patch 11 that parts of the existing fsck.gfs2 code assume that the first rgrp lies in the first block after the superblock. That's likely to get confused when the file system is RAID stripe aligned so that's something that may need addressing at some point (mkfs.gfs2 -b 4096 -o swidth=16k,sunit=8k should mock it up for a test). In general it would be good to have more fsck.gfs2 tests in the testsuite so if there's a simple way to test these patches without mounting (scribbling over some rindex entries?) then I'll get that added. Cheers, Andy > > gfs2/edit/hexedit.c | 9 +- > gfs2/fsck/fs_recovery.c | 138 +++++++++++++++++++ > gfs2/fsck/fs_recovery.h | 1 + > gfs2/fsck/initialize.c | 142 +------------------- > gfs2/fsck/rgrepair.c | 349 ++++++++++++++++++++++++++++++++++-------------- > gfs2/include/osi_tree.h | 51 ++++--- > gfs2/libgfs2/gfs2l.c | 2 +- > gfs2/libgfs2/libgfs2.h | 3 +- > gfs2/libgfs2/rgrp.c | 30 +++-- > gfs2/libgfs2/super.c | 8 +- > 10 files changed, 457 insertions(+), 276 deletions(-) >