[Cluster-devel] [gfs2-utils PATCH 00/20] fsck.gfs2: Fix bugs and eliminate pass1c

Andrew Price anprice at redhat.com
Tue Sep 29 18:02:48 UTC 2015


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 <rpeterso at redhat.com>
> ---
> 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
>




More information about the Cluster-devel mailing list