From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bob Peterson Date: Thu, 25 Aug 2011 12:49:36 -0400 (EDT) Subject: [Cluster-devel] [PATCH 00/56] fsck.gfs2: Support for checking gfs1 file systems In-Reply-To: <359105524.165748.1314289825830.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com> Message-ID: <1728831088.166017.1314290976198.JavaMail.root@zmail06.collab.prod.int.phx2.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, I previously posted a series of 44 patches to fsck.gfs2 that fix numerous bugs and allow fsck.gfs2 to operate on GFS1 file systems. Since I posted those patches, I received feedback and changed the patches accordingly. I've also done extensive testing and discovered and fixed several more bugs. There are now 56 patches in all. As Andy Price suggested, I renamed their descriptions to make them shorter so they're not cut off. My latest version has passed all my tests and I'm ready to start pushing them to the upstream gfs2-utils git repository. But before I do, I wanted to post the corrected patches and the new ones here. I'm not reposting the patches that got ACKed. Here is the complete list of patches: 1/56 fsck.gfs2: Make functions use sdp rather than sbp 2/56 fsck.gfs2: Change "if(" to "if (" 3/56 libgfs1: Add gfs1 variable to superblock structure 4/56 libgfs2: Make check_sb and read_sb operate on gfs1 5/56 libgfs2: move gfs1 structures to libgfs2 6/56 fsck.gfs2: Check for blocks wrongly inside resource groups 7/56 fsck.gfs2: Rename check_leaf to check_ealeaf_block 8/56 fsck.gfs2: fsck.gfs2: Delete vestigial buffer_head in check_leaf 9/56 fsck.gfs2: fsck.gfs2: Rename nlink functions to be intuitive 10/56 fsck.gfs2: fsck.gfs2: Sync di_nlink adding links for lost+found 11/56 fsck.gfs2: fsck.gfs2: Make dir entry count 32 bits 12/56 fsck.gfs2: get rid of triple negative logic 13/56 dirent_repair needs to mark the buffer as modified 14/56 fsck.gfs2: fsck.gfs2: Ask to reclaim unlinked meta per-rgrp only 15/56 fsck.gfs2: fsck.gfs2: Refactor add_dotdot function in lost+found 16/56 libgfs2: libgfs2: Use __FUNCTION__ rather than __FILE__ 17/56 fsck.gfs2: fsck.gfs2: Don't stop invalidating blocks on invalid 18/56 fsck.gfs2: fsck.gfs2: Find and clear duplicate leaf blocks refs 19/56 fsck.gfs2: fsck.gfs2: Move check_num_ptrs from metawalk to pass1 20/56 fsck.gfs2: fsck.gfs2: Duplicate ref processing for leaf blocks 21/56 fsck.gfs2: fsck.gfs2: split check_leaf_blks to be more readable 22/56 fsck.gfs2: Shorten output 23/56 fsck.gfs2: Make output messages more sensible 24/56 fsck.gfs pass2: Refactor function set_dotdor_dir 25/56 fsck.gfs2 pass2: Delete extended attributes with inode 26/56 fsck.gfs2 pass2: Don't delete invalid inode metadata 27/56 fsck.gfs2 pass3: Refactor mark_and_return_parent 28/56 fsck.gfs2: misc cosmetic changes 29/56 fsck.gfs2: Don't use old_leaf if it was a duplicate 30/56 fsck.gfs2: Add find_remove_dup, free_block_if_notdup 31/56 fsck.gfs2: don't free prev rgrp list repairing rgrps 32/56 libgfs2: eliminate gfs1_readi in favor of gfs2_readi 33/56 libgfs2: Mark buffer modified adding a new GFS1 block 34/56 libgfs2: Use dinode buffer to map gfs1 dinode blocks 35/56 libgfs2: move block_map functions to fsck.gfs2 36/56 libgfs2: eliminate gfs1_rindex_read 37/56 libgfs2: combine ri_update and gfs1_ri_update 38/56 libgfs2: combine gfs_inode_read and gfs_inode_get 39/56 libgfs2: move gfs1 functions from edit to libgfs2 40/56 gfs2_edit savemeta: save_inode_data backward for gfs1 41/56 libgfs2: expand capabilities to operate on gfs1 42/56 fsck.gfs2: Combine block and char device inode types 43/56 fsck.gfs2: four-step duplicate elimination process 44/56 fsck.gfs2: Add ability to check gfs1 file systems 45/56 fsck.gfs2: Remove bad inodes from duplicate tree 46/56 fsck.gfs2: Handle duplicate reference to dinode blocks 47/56 fsck.gfs2: Bad extended attributes not deleted properly 48/56 libgfs2: Make rebuild functions not re-read ip 49/56 fsck.gfs2: Shorten debug output 50/56 fsck.gfs2: Increment link count reporting wrong dinode 51/56 fsck.gfs2: system dinodes take priority over user dinodes 52/56 fsck.gfs2: Recognize partially gfs2-converted dinodes 53/56 fsck.gfs2: Print step 2 duplicate debug msg first 54/56 fsck.gfs2: pass1c counts percentage backward 55/56 fsck.gfs2: Speed up rangecheck functions 56/56 libgfs2: Make in-core rgrps use rbtree In addition, I just put my experimental new fsck.gfs2, which contains all these patches, on my people page at this location: http://people.redhat.com/rpeterso/Experimental/RHEL6.x/fsck.gfs2 It is experimental, so make backups and try it AT YOUR OWN RISK. However, it is also better tested than all of its predecessors. Regards, Bob Peterson Red Hat File Systems