[Cluster-devel] [gfs2-utils PATCH 00/47] fsck.gfs2 is unable to fix misplaced directory leaf blocks

Bob Peterson rpeterso at redhat.com
Tue May 14 16:21:23 UTC 2013


Hi,

Back on April 8, I posted a set of 43 patches to fix certain fsck.gfs2
problems relating to corrupt directory hash tables. Since that time, I've
discovered a few more problems, fixed some patches, and wrote 5 others.

Here is a revised set of patches for fsck.gfs2. These are mostly bug fixes,
but there are some cleanups as well. The two biggest bug fixes are:

(1) Directory hash tables and leaf blocks are now properly checked and fixed,
    rather than patched up.
(2) Handling of duplicate block references has been reworked to make better
    decisions.

Regards,

Bob Peterson
Red Hat File Systems

[gfs2-utils PATCH 01/47] libgfs2: externalize dir_split_leaf
[gfs2-utils PATCH 02/47] libgfs2: allow dir_split_leaf to receive a leaf buffer
[gfs2-utils PATCH 03/47] libgfs2: let dir_split_leaf receive a "broken" lindex
[gfs2-utils PATCH 04/47] fsck.gfs2: Move function find_free_blk to util.c
[gfs2-utils PATCH 05/47] fsck.gfs2: Split out function to make sure lost+found
[gfs2-utils PATCH 06/47] fsck.gfs2: Check for formal inode mismatch when adding
[gfs2-utils PATCH 07/47] fsck.gfs2: shorten some debug messages in lost+found
[gfs2-utils PATCH 08/47] fsck.gfs2: Move basic directory entry checks to
[gfs2-utils PATCH 09/47] fsck.gfs2: Add formal inode check to basic dirent
[gfs2-utils PATCH 10/47] fsck.gfs2: Add new function to check dir hash tables
[gfs2-utils PATCH 11/47] fsck.gfs2: Special case '..' when processing bad
[gfs2-utils PATCH 12/47] fsck.gfs2: Move function to read directory hash table
[gfs2-utils PATCH 13/47] fsck.gfs2: Misc cleanups
[gfs2-utils PATCH 14/47] fsck.gfs2: Verify dirent hash values correspond to
[gfs2-utils PATCH 15/47] fsck.gfs2: re-read hash table if directory height or
[gfs2-utils PATCH 16/47] fsck.gfs2: fix leaf blocks, don't try to patch the
[gfs2-utils PATCH 17/47] fsck.gfs2: check leaf depth when validating leaf
[gfs2-utils PATCH 18/47] fsck.gfs2: small cleanups
[gfs2-utils PATCH 19/47] fsck.gfs2: reprocess inodes when blocks are added
[gfs2-utils PATCH 20/47] fsck.gfs2: Remove redundant leaf depth check
[gfs2-utils PATCH 21/47] fsck.gfs2: link dinodes that only have extended
[gfs2-utils PATCH 22/47] fsck.gfs2: Add clarifying message to duplicate
[gfs2-utils PATCH 23/47] fsck.gfs2: separate function to calculate metadata
[gfs2-utils PATCH 24/47] fsck.gfs2: Rework the "undo" functions
[gfs2-utils PATCH 25/47] fsck.gfs2: Check for interrupt when resolving
[gfs2-utils PATCH 26/47] fsck.gfs2: Consistent naming of struct duptree
[gfs2-utils PATCH 27/47] fsck.gfs2: Keep proper counts when duplicates are
[gfs2-utils PATCH 28/47] fsck.gfs2: print metadata block reference on data
[gfs2-utils PATCH 29/47] fsck.gfs2: print block count values when fixing them
[gfs2-utils PATCH 30/47] fsck.gfs2: Do not invalidate metablocks of dinodes
[gfs2-utils PATCH 31/47] fsck.gfs2: Log when unrecoverable data block errors
[gfs2-utils PATCH 32/47] fsck.gfs2: don't remove buffers from the list when
[gfs2-utils PATCH 33/47] fsck.gfs2: Don't flag GFS1 non-dinode blocks as
[gfs2-utils PATCH 34/47] fsck.gfs2: externalize check_leaf
[gfs2-utils PATCH 35/47] fsck.gfs2: pass2: check leaf blocks when fixing hash
[gfs2-utils PATCH 36/47] fsck.gfs2: standardize check_metatree return codes
[gfs2-utils PATCH 37/47] fsck.gfs2: don't invalidate files with duplicate data
[gfs2-utils PATCH 38/47] fsck.gfs2: check for duplicate first references
[gfs2-utils PATCH 39/47] fsck.gfs2: When flagging a duplicate reference, show
[gfs2-utils PATCH 40/47] fsck.gfs2: major duplicate reference reform
[gfs2-utils PATCH 41/47] fsck.gfs2: Remove all bad eattr blocks
[gfs2-utils PATCH 42/47] fsck.gfs2: Remove unused variable
[gfs2-utils PATCH 43/47] fsck.gfs2: double-check transitions from dinode to
[gfs2-utils PATCH 44/47] fsck.gfs2: Stop "undo" process when error data block
[gfs2-utils PATCH 45/47] fsck.gfs2: Don't allocate leaf blocks in pass1
[gfs2-utils PATCH 46/47] fsck.gfs2: take hash table start boundaries into
[gfs2-utils PATCH 47/47] fsck.gfs2: delete all duplicates from unrecoverable




More information about the Cluster-devel mailing list