From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Price Date: Tue, 29 Sep 2015 19:02:48 +0100 Subject: [Cluster-devel] [gfs2-utils PATCH 00/20] fsck.gfs2: Fix bugs and eliminate pass1c In-Reply-To: References: Message-ID: <560AD248.7050802@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 28/09/15 15:45, Bob Peterson wrote: > Hi, > > This original goal of this patch series was to eliminate pass1c, because > it is slow and takes lots of memory related to a linked list of all inodes > that have extended attributes. In thoroughly testing the patch, I uncovered > a bunch of fsck.gfs2 bugs, most of which have to do with extended attributes. > One patch spares the life of inodes that have bad extended attribute pointers: > rather than deleting the inode, it now removes its extended attributes. > Another patch adds a new feature to fsck.gfs2 whereby duplicated data block > pointers may be cloned to new data blocks, sparing the life of some inodes > that were previously deleted. There are a few cleanups thrown in as well. The series looks good to me. ACK. Thanks, Andy > > Regards, > > Bob Peterson > Red Hat File Systems > > Signed-off-by: Bob Peterson > --- > Bob Peterson (20): > libgfs2: Check block range when inserting into rgrp tree > libgfs2: Check rgd->bits before referencing it > fsck.gfs2: Add check for gfs1 invalid inode refs in dentry > fsck.gfs2: Make debug messages more succinct wrt extended attributes > fsck.gfs2: Break up funtion handle_dup_blk > fsck.gfs2: Only preserve the _first_ acceptable inode reference > fsck.gfs2: Don't just assume the remaining EA reference is good > fsck.gfs2: Don't delete inode for duplicate reference in EA > fsck.gfs2: Don't traverse EAs that belong to another inode > fsck.gfs2: Refactor function check_indirect_eattr > fsck.gfs2: Once an indirect ea error is found, flag all that follow > fsck.gfs2: Always restore saved value for di_eattr > fsck.gfs2: Remove redundancy in add_duplicate_ref > fsck.gfs2: Don't remove duplicate eattr blocks > fsck.gfs2: Refactor check_eattr_entries and add error messages > fsck.gfs2: remove bad EAs at the end, not as-you-go > fsck.gfs2: Combine remove_inode_eattr with its only caller > fsck.gfs2: Print debug message to dilineate metadata blocks > fsck.gfs2: Remove pass1c in favor of processing in pass1 > fsck.gfs2: Clone duplicate data block pointers > > gfs2/fsck/Makefile.am | 1 - > gfs2/fsck/main.c | 1 - > gfs2/fsck/metawalk.c | 185 ++++++++++++----------- > gfs2/fsck/pass1.c | 296 ++++++++++++++++++++++--------------- > gfs2/fsck/pass1b.c | 392 +++++++++++++++++++++++++++++++++++-------------- > gfs2/fsck/pass1c.c | 285 ----------------------------------- > gfs2/fsck/pass2.c | 21 +++ > gfs2/fsck/util.c | 15 +- > gfs2/libgfs2/libgfs2.h | 2 - > gfs2/libgfs2/rgrp.c | 2 +- > gfs2/libgfs2/super.c | 6 + > 11 files changed, 592 insertions(+), 614 deletions(-) > delete mode 100644 gfs2/fsck/pass1c.c >