[Cluster-devel] cluster/gfs2/fsck Makefile eattr.c fs_recovery ...

rpeterso at sourceware.org rpeterso at sourceware.org
Mon Jun 12 20:41:49 UTC 2006


CVSROOT:	/cvs/cluster
Module name:	cluster
Changes by:	rpeterso at sourceware.org	2006-06-12 20:41:43

Modified files:
	gfs2/fsck      : Makefile eattr.c fs_recovery.c fsck.h 
	                 initialize.c link.c lost_n_found.c main.c 
	                 metawalk.c pass1.c pass1b.c pass1c.c pass2.c 
	                 pass3.c pass4.c pass5.c util.c 
Removed files:
	gfs2/fsck      : bitmap.c bitmap.h block_list.c block_list.h 
	                 fs_bits.c log.c log.h super.c super.h 

Log message:
	Made all block numbers show in decimal and hex.  Minor bug fixes.
	Moved some functions to libgfs2.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/Makefile.diff?cvsroot=cluster&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/eattr.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/fs_recovery.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/fsck.h.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/initialize.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/link.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/lost_n_found.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/main.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/metawalk.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/pass1.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/pass1b.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/pass1c.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/pass2.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/pass3.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/pass4.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/pass5.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/util.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/bitmap.c.diff?cvsroot=cluster&r1=1.2&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/bitmap.h.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/block_list.c.diff?cvsroot=cluster&r1=1.2&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/block_list.h.diff?cvsroot=cluster&r1=1.1&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/fs_bits.c.diff?cvsroot=cluster&r1=1.2&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/log.c.diff?cvsroot=cluster&r1=1.2&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/log.h.diff?cvsroot=cluster&r1=1.2&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/super.c.diff?cvsroot=cluster&r1=1.2&r2=NONE
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs2/fsck/super.h.diff?cvsroot=cluster&r1=1.2&r2=NONE

--- cluster/gfs2/fsck/Makefile	2006/06/06 14:49:31	1.3
+++ cluster/gfs2/fsck/Makefile	2006/06/12 20:41:43	1.4
@@ -20,9 +20,8 @@
 .PHONY: all clean
 
 sources = main.c initialize.c pass1.c pass1b.c pass1c.c pass2.c pass3.c \
-	pass4.c pass5.c super.c util.c fs_recovery.c \
-	log.c lost_n_found.c link.c eattr.c hash.c inode_hash.c \
-	metawalk.c
+	pass4.c pass5.c util.c fs_recovery.c \
+	lost_n_found.c link.c eattr.c hash.c inode_hash.c metawalk.c
 
 CFLAGS+=-D_FILE_OFFSET_BITS=64 -DHELPER_PROGRAM -DGFS_RELEASE_NAME=\"${RELEASE}\" -Wall -g
 
--- cluster/gfs2/fsck/eattr.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/eattr.c	2006/06/12 20:41:43	1.3
@@ -15,7 +15,7 @@
 #include <linux_endian.h>
 
 #include "libgfs2.h"
-#include "log.h"
+#include "fsck.h"
 
 static int clear_blk_nodup(struct gfs2_sbd *sbp, uint64_t block)
 {
--- cluster/gfs2/fsck/fs_recovery.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/fs_recovery.c	2006/06/12 20:41:43	1.3
@@ -21,7 +21,6 @@
 #include "libgfs2.h"
 #include "util.h"
 #include "fs_recovery.h"
-#include "log.h"
 
 #define RANDOM(values) ((values) * (random() / (RAND_MAX + 1.0)))
 
@@ -64,7 +63,8 @@
 		block_map(ip, x, &new, &dblock, &extlen);
 		bh = bread(sdp, dblock);
 		if (!bh) {
-			log_err("Unable to read journal block at %"PRIu64"\n", dblock);
+			log_err("Unable to read journal block at %" PRIu64
+					" (0x%" PRIx64")\n", dblock, dblock);
 			return -1;
 		}
 
--- cluster/gfs2/fsck/fsck.h	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/fsck.h	2006/06/12 20:41:43	1.3
@@ -19,12 +19,6 @@
 #define FSCK_HASH_SIZE          (1 << FSCK_HASH_SHIFT)
 #define FSCK_HASH_MASK          (FSCK_HASH_SIZE - 1)
 
-struct options {
-	char *device;
-	int yes:1;
-	int no:1;
-};
-
 struct inode_info
 {
         osi_list_t list;
@@ -59,7 +53,7 @@
  * of pass1 and put somewhere else... */
 int add_to_dir_list(struct gfs2_sbd *sbp, uint64_t block);
 
-extern struct options opts;
+extern struct gfs2_options opts;
 extern struct gfs2_inode *lf_dip; /* Lost and found directory inode */
 extern osi_list_t dir_hash[FSCK_HASH_SIZE];
 extern osi_list_t inode_hash[FSCK_HASH_SIZE];
--- cluster/gfs2/fsck/initialize.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/initialize.c	2006/06/12 20:41:43	1.3
@@ -25,9 +25,7 @@
 #include "libgfs2.h"
 #include "fsck.h"
 #include "util.h"
-#include "super.h"
 #include "fs_recovery.h"
-#include "log.h"
 #include "linux_endian.h"
 
 #define CLEAR_POINTER(x) \
@@ -36,8 +34,6 @@
 		x = NULL; \
 	}
 
-extern struct options opts;
-
 /**
  * init_journals
  *
@@ -167,15 +163,16 @@
 
 	if(do_lseek(sdp->device_fd, (last_fs_block * sdp->sd_sb.sb_bsize))){
 		log_crit("Can't seek to last block in file system: %"
-			 PRIu64"\n", last_fs_block);
+				 PRIu64" (0x%" PRIx64 ")\n", last_fs_block, last_fs_block);
 		goto fail;
 	}
 
 	memset(buf, 0, sdp->sd_sb.sb_bsize);
 	error = read(sdp->device_fd, buf, sdp->sd_sb.sb_bsize);
 	if (error != sdp->sd_sb.sb_bsize){
-		log_crit("Can't read last block in file system (%u), "
-			 "last_fs_block: %"PRIu64"\n", error, last_fs_block);
+		log_crit("Can't read last block in file system (error %u), "
+				 "last_fs_block: %"PRIu64" (0x%" PRIx64 ")\n", error,
+				 last_fs_block, last_fs_block);
 		goto fail;
 	}
 
@@ -198,6 +195,7 @@
 	char *buf;
 	uint64_t inumbuf;
 	struct gfs2_statfs_change sc;
+	int rgcount;
 
 	sync();
 
@@ -278,7 +276,7 @@
 		return -1;
 	}
 
-	if(ri_update(sdp)){
+	if(ri_update(sdp, &rgcount)){
 		log_err("Unable to fill in resource group information.\n");
 		goto fail;
 	}
--- cluster/gfs2/fsck/link.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/link.c	2006/06/12 20:41:43	1.3
@@ -21,12 +21,11 @@
 #include "fsck.h"
 #include "inode_hash.h"
 #include "link.h"
-#include "log.h"
 
 int set_link_count(struct gfs2_sbd *sbp, uint64_t inode_no, uint32_t count)
 {
 	struct inode_info *ii = NULL;
-	log_debug("Setting link count to %u for %" PRIu64 " (0x%" PRIx64")\n",
+	log_debug("Setting link count to %u for %" PRIu64 " (0x%" PRIx64 ")\n",
 			  count, inode_no, inode_no);
 	/* If the list has entries, look for one that matches
 	 * inode_no */
@@ -34,7 +33,7 @@
 	if(ii) {
 		if(ii->link_count) {
 			log_err("Link count already set for inode #%" PRIu64 " (0x%"
-					PRIx64")!\n", inode_no, inode_no);
+					PRIx64 ")!\n", inode_no, inode_no);
 			stack;
 			return -1;
 		}
@@ -67,11 +66,11 @@
 	if(ii) {
 		ii->counted_links++;
 		log_debug("Incremented counted links to %u for %"PRIu64" (0x%"
-				  PRIx64")\n", ii->counted_links, inode_no, inode_no);
+				  PRIx64 ")\n", ii->counted_links, inode_no, inode_no);
 		return 0;
 	}
 	log_debug("No match found when incrementing link for %" PRIu64
-			  " (0x%" PRIx64")!\n", inode_no, inode_no);
+			  " (0x%" PRIx64 ")!\n", inode_no, inode_no);
 	/* If no match was found, add a new entry and set its
 	 * counted links to 1 */
 	if(!(ii = (struct inode_info *) malloc(sizeof(*ii)))) {
@@ -104,7 +103,7 @@
 		return 0;
 	}
 	log_debug("No match found when decrementing link for %" PRIu64
-			  " (0x%" PRIx64")!\n", inode_no, inode_no);
+			  " (0x%" PRIx64 ")!\n", inode_no, inode_no);
 	return -1;
 
 }
--- cluster/gfs2/fsck/lost_n_found.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/lost_n_found.c	2006/06/12 20:41:43	1.3
@@ -20,10 +20,10 @@
 #include <unistd.h>
 #include <dirent.h>
 
+#include "fsck.h"
 #include "libgfs2.h"
 #include "lost_n_found.h"
 #include "link.h"
-#include "log.h"
 
 /* add_inode_to_lf - Add dir entry to lost+found for the inode
  * @ip: inode to add to lost + found
@@ -45,13 +45,13 @@
 
 		log_info("Locating/Creating lost and found directory\n");
 
-        lf_dip = createi(ip->i_sbd->md.rooti, "l+f", S_IFDIR | 0700, 0);
+        lf_dip = createi(ip->i_sbd->md.rooti, "lost+found", S_IFDIR | 0700, 0);
 		if(gfs2_block_check(bl, lf_dip->i_di.di_num.no_addr, &q)) {
 			stack;
 			return -1;
 		}
 		if(q.block_type != gfs2_inode_dir) {
-			/* This is a new l+f directory, so set its
+			/* This is a new lost+found directory, so set its
 			 * block type and increment link counts for
 			 * the directories */
 			/* FIXME: i'd feel better about this if
@@ -67,21 +67,21 @@
 		}
 	}
 	if(ip->i_di.di_num.no_addr == lf_dip->i_di.di_num.no_addr) {
-		log_err("Trying to add l+f to itself...skipping");
+		log_err("Trying to add lost+found to itself...skipping");
 		return 0;
 	}
 	switch(ip->i_di.di_mode & S_IFMT){
 	case S_IFDIR:
-		log_info("Adding .. entry pointing to l+f for %"PRIu64"\n",
+		log_info("Adding .. entry pointing to lost+found for %"PRIu64"\n",
 				 ip->i_di.di_num.no_addr);
 		sprintf(tmp_name, "..");
 		filename_len = strlen(tmp_name);  /* no trailing NULL */
-		if(!(filename = malloc(sizeof(char) * filename_len))) {
+		if(!(filename = malloc((sizeof(char) * filename_len) + 1))) {
 			log_err("Unable to allocate name\n");
 			stack;
 			return -1;
 		}
-		if(!memset(filename, 0, sizeof(char) * filename_len)) {
+		if(!memset(filename, 0, (sizeof(char) * filename_len) + 1)) {
 			log_err("Unable to zero name\n");
 			stack;
 			return -1;
@@ -90,7 +90,7 @@
 
 		if(gfs2_dirent_del(ip, NULL, filename, filename_len))
 			log_warn("add_inode_to_lf:  "
-				"Unable to remove \"..\" directory entry.\n");
+					 "Unable to remove \"..\" directory entry.\n");
 
 		dir_add(ip, filename, filename_len, &(lf_dip->i_di.di_num), DT_DIR);
 		free(filename);
@@ -145,6 +145,7 @@
 		increment_link(ip->i_sbd, lf_dip->i_di.di_num.no_addr);
 
 	free(filename);
-	log_notice("Added inode #%"PRIu64" to l+f dir\n", ip->i_di.di_num.no_addr);
+	log_notice("Added inode #%"PRIu64" to lost+found dir\n",
+			   ip->i_di.di_num.no_addr);
 	return 0;
 }
--- cluster/gfs2/fsck/main.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/main.c	2006/06/12 20:41:43	1.3
@@ -21,10 +21,9 @@
 #include "copyright.cf"
 #include "libgfs2.h"
 #include "fsck.h"
-#include "log.h"
 #include "osi_list.h"
 
-struct options opts = {0};
+struct gfs2_options opts = {0};
 struct gfs2_inode *lf_dip; /* Lost and found directory inode */
 osi_list_t dir_hash[FSCK_HASH_SIZE];
 osi_list_t inode_hash[FSCK_HASH_SIZE];
@@ -81,7 +80,7 @@
 	printf("%s\n", REDHAT_COPYRIGHT);
 }
 
-int read_cmdline(int argc, char **argv, struct options *opts)
+int read_cmdline(int argc, char **argv, struct gfs2_options *opts)
 {
 	char c;
 
--- cluster/gfs2/fsck/metawalk.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/metawalk.c	2006/06/12 20:41:43	1.3
@@ -21,7 +21,6 @@
 #include "libgfs2.h"
 #include "fsck.h"
 #include "util.h"
-#include "log.h"
 #include "metawalk.h"
 #include "hash.h"
 
@@ -45,7 +44,8 @@
 	else if (type == DIR_EXHASH) {
 		dent = (struct gfs2_dirent *)(bh->b_data + sizeof(struct gfs2_leaf));
 		leaf = (struct gfs2_leaf *)bh->b_data;
-		log_debug("Checking leaf %"PRIu64"\n", bh->b_blocknr);
+		log_debug("Checking leaf %" PRIu64 " (0x%" PRIx64 ")\n",
+				  bh->b_blocknr, bh->b_blocknr);
 	}
 	else {
 		log_err("Invalid directory type %d specified\n", type);
@@ -68,13 +68,14 @@
 			} else {
 				/* FIXME: Do something about this */
 				log_err("Directory entry with inode number of zero in leaf %"
-						PRIu64" of directory %"PRIu64"!\n", bh->b_blocknr,
-						ip->i_di.di_num.no_addr);
+						PRIu64 "(0x%" PRIx64 ") of directory %" PRIu64
+						" (0x%" PRIx64 ")!\n", bh->b_blocknr, bh->b_blocknr,
+						ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr);
 				return 1;
 			}
 		} else {
 			error = pass->check_dentry(ip, dent, prev, bh, filename, update,
-						   count, pass->private);
+									   count, pass->private);
 			if(error < 0) {
 				stack;
 				return -1;
@@ -123,10 +124,11 @@
 			continue;
 		} else {
 			if(ref_count != exp_count){
-				log_err("Dir #%"PRIu64" has an incorrect number "
-					 "of pointers to leaf #%"PRIu64"\n"
-					 "\tFound: %u,  Expected: %u\n",
-					 ip->i_di.di_num.no_addr, old_leaf, ref_count, exp_count);
+				log_err("Dir #%" PRIu64 " (0x%" PRIx64 ") has an incorrect "
+						"number of pointers to leaf #%" PRIu64 " (0x%" PRIx64
+						")\n\tFound: %u,  Expected: %u\n",
+						ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr,
+						old_leaf, old_leaf, ref_count, exp_count);
 				return 1;
 			}
 			ref_count = 1;
@@ -283,7 +285,8 @@
 {
 	struct gfs2_buffer_head *bh = NULL;
 	int error = 0;
-	log_debug("Checking EA leaf block #%"PRIu64".\n", block);
+	log_debug("Checking EA leaf block #%"PRIu64" (0x%" PRIx64 ").\n",
+			  block, block);
 
 	if(pass->check_eattr_leaf) {
 		error = pass->check_eattr_leaf(ip, block, parent, &bh, pass->private);
@@ -315,7 +318,8 @@
 	struct gfs2_buffer_head *indirect_buf = NULL;
 	struct gfs2_sbd *sdp = ip->i_sbd;
 
-	log_debug("Checking EA indirect block #%"PRIu64".\n", indirect);
+	log_debug("Checking EA indirect block #%"PRIu64" (0x%" PRIx64 ").\n",
+			  indirect, indirect);
 
 	if (!pass->check_eattr_indir ||
 	    !pass->check_eattr_indir(ip, indirect, ip->i_di.di_num.no_addr,
@@ -352,8 +356,9 @@
 		return 0;
 	}
 
-	log_debug("Extended attributes exist for inode #%"PRIu64".\n",
-		ip->i_di.di_num.no_formal_ino);
+	log_debug("Extended attributes exist for inode #%" PRIu64 " (0x%" PRIx64
+			  ").\n", ip->i_di.di_num.no_formal_ino,
+			  ip->i_di.di_num.no_formal_ino);
 
 	if(ip->i_di.di_flags & GFS2_DIF_EA_INDIRECT){
 		if((error = check_indirect_eattr(ip, ip->i_di.di_eattr, pass)))
@@ -416,7 +421,8 @@
 					goto fail;
 				}
 				if(err > 0) {
-					log_debug("Skipping block %" PRIu64 "\n", block);
+					log_debug("Skipping block %" PRIu64 " (0x%" PRIx64 ")\n",
+							  block, block);
 					continue;
 				}
 				subblock = be64_to_cpu(*subptr);
@@ -563,8 +569,8 @@
 	struct gfs2_block_query q;
 	int error;
 
-	log_debug("Removing dentry %"PRIu64" from directory %"PRIu64"\n",
-			  dentryblock, dir);
+	log_debug("Removing dentry %" PRIu64 " (0x%" PRIx64 ") from directory %"
+			  PRIu64" (0x%" PRIx64 ")\n", dentryblock, dentryblock, dir, dir);
 	if(gfs2_check_range(sbp, dir)) {
 		log_err("Parent directory out of range\n");
 		return 1;
--- cluster/gfs2/fsck/pass1.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/pass1.c	2006/06/12 20:41:43	1.3
@@ -33,7 +33,6 @@
 #include "libgfs2.h"
 #include "fsck.h"
 #include "util.h"
-#include "log.h"
 #include "link.h"
 #include "linux_endian.h"
 #include "metawalk.h"
@@ -55,8 +54,8 @@
 
 	f = not_updated;
 	if(gfs2_check_range(sdp, block)){
-		log_warn("Leaf block #%"PRIu64" (0x%" PRIx64 ") is out of range for "
-				 "directory #%"PRIu64" (0x%" PRIx64 ").\n",
+		log_warn("Leaf block #%" PRIu64 " (0x%" PRIx64 ") is out of range for "
+				 "directory #%" PRIu64 " (0x%" PRIx64 ").\n",
 				 block, block, ip->i_di.di_num.no_addr,
 				 ip->i_di.di_num.no_addr);
 		gfs2_block_set(bl, ip->i_di.di_num.no_addr, gfs2_bad_block);
@@ -68,7 +67,7 @@
 
 	if(gfs2_check_meta(*bh, GFS2_METATYPE_LF)){
 		log_err("Bad meta header for leaf block #%" PRIu64 "(0x%" PRIx64 
-				") in directory #%"PRIu64". - is %u, should be %u\n",
+				") in directory #%" PRIu64 ". - is %u, should be %u\n",
 				(*bh)->b_data, (*bh)->b_data, ip->i_di.di_num.no_addr,
 				ip->i_di.di_num.no_addr,
 				(struct gfs2_meta_header *)mh->mh_type,
@@ -80,12 +79,12 @@
 			log_err("Directory inode marked invalid\n");
 			f = updated;
 		} else
-			log_err("Invalid block %"PRIu64" (0x%" PRIx64 ") ignored\n",
+			log_err("Invalid block %" PRIu64 " (0x%" PRIx64 ") ignored\n",
 				ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr);
 		brelse(*bh, f);
 		return 1;
 	}
-	log_debug("\tLeaf block at %15"PRIu64" (0x%" PRIx64 ")\n",
+	log_debug("\tLeaf block at %15" PRIu64 " (0x%" PRIx64 ")\n",
 			  block, block);
 	gfs2_block_set(bl, block, gfs2_leaf_blk);
 	bc->indir_count++;
@@ -160,13 +159,13 @@
 		return -1;
 	}
 	if(q.block_type != gfs2_block_free) {
-		log_debug("Found duplicate block at %" PRIu64 " (0x%"PRIx64")\n",
+		log_debug("Found duplicate block at %" PRIu64 " (0x%"PRIx64 ")\n",
 				  block, block);
 		gfs2_block_mark(bl, block, gfs2_dup_block);
 		bc->data_count++;
 		return 1;
 	}
-	log_debug("Setting %"PRIu64 " (0x%" PRIx64 ") to data block\n", block,
+	log_debug("Setting %" PRIu64 " (0x%" PRIx64 ") to data block\n", block,
 			  block);
 	gfs2_block_set(bl, block, gfs2_block_used);
 	bc->data_count++;
@@ -185,7 +184,7 @@
 
 	/* This inode contains an eattr - it may be invalid, but the
 	 * eattr attributes points to a non-zero block */
-	log_debug("Setting %"PRIu64 " (0x%" PRIx64 ") to eattr block\n", block,
+	log_debug("Setting %" PRIu64 " (0x%" PRIx64 ") to eattr block\n", block,
 			  block);
 	gfs2_block_set(bl, ip->i_di.di_num.no_addr, gfs2_eattr_block);
 
@@ -202,7 +201,7 @@
 		ret = -1;
 	}
 	else if(q.block_type != gfs2_block_free) {
-		log_debug("Duplicate block found at #%"PRIu64" (0x%" PRIx64 ").\n",
+		log_debug("Duplicate block found at #%" PRIu64 " (0x%" PRIx64 ").\n",
 				  indirect, indirect);
 		gfs2_block_set(bl, indirect, gfs2_dup_block);
 		bc->ea_count++;
@@ -219,8 +218,8 @@
 		}
 		else {
 			/* FIXME: do i need to differentiate this as an ea_indir? */
-			log_debug("Setting %"PRIu64 " (0x%" PRIx64 ") to indirect block\n",
-					  block, block);
+			log_debug("Setting %" PRIu64 " (0x%" PRIx64
+					  ") to indirect block\n", block, block);
 			gfs2_block_set(bl, block, gfs2_indir_blk);
 			bc->ea_count++;
 		}
@@ -253,7 +252,7 @@
 	struct block_count *bc = (struct block_count *) private;
 
 	if(gfs2_check_range(sdp, el_blk)){
-		log_err("EA extended leaf block #%"PRIu64"  (0x%" PRIx64
+		log_err("EA extended leaf block #%" PRIu64 " (0x%" PRIx64
 				") is out of range.\n",	el_blk, el_blk);
 		gfs2_block_set(bl, ip->i_di.di_eattr, gfs2_bad_block);
 		return 1;
@@ -272,14 +271,14 @@
 	el_buf = bread(sdp, el_blk);
 
 	if(gfs2_check_meta(el_buf, GFS2_METATYPE_ED)) {
-		log_err("EA extended leaf block %" PRIu64 "(0x%" PRIx64
+		log_err("EA extended leaf block %" PRIu64 " (0x%" PRIx64
 				") has incorrect type.\n", el_blk, el_blk);
 		brelse(el_buf, not_updated);
 		gfs2_block_set(bl, el_blk, gfs2_meta_inval);
 		return 1;
 	}
 
-	log_debug("Setting %"PRIu64 " (0x%" PRIx64 ") to eattr block\n",
+	log_debug("Setting %" PRIu64 " (0x%" PRIx64 ") to eattr block\n",
 			  el_blk, el_blk);
 	gfs2_block_set(bl, el_blk, gfs2_meta_eattr);
 	bc->ea_count++;
@@ -298,12 +297,12 @@
 
 	/* This inode contains an eattr - it may be invalid, but the
 	 * eattr attributes points to a non-zero block */
-	log_debug("Setting %"PRIu64 " (0x%" PRIx64 ") to eattr block\n",
+	log_debug("Setting %" PRIu64 " (0x%" PRIx64 ") to eattr block\n",
 			  ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr);
 	gfs2_block_set(bl, ip->i_di.di_num.no_addr, gfs2_eattr_block);
 
 	if(gfs2_check_range(sdp, block)){
-		log_warn("EA leaf block #%"PRIu64" (0x%" PRIx64 ") in inode %"PRIu64
+		log_warn("EA leaf block #%" PRIu64 " (0x%" PRIx64 ") in inode %" PRIu64
 				 " (0x%" PRIx64 ") is out of range.\n",
 				 ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr,
 				 block, block);
@@ -315,7 +314,7 @@
 		return -1;
 	}
 	else if(q.block_type != gfs2_block_free) {
-		log_debug("Duplicate block found at #%"PRIu64" (0x%" PRIx64 ").\n",
+		log_debug("Duplicate block found at #%" PRIu64 " (0x%" PRIx64 ").\n",
 				  block, block);
 		gfs2_block_set(bl, block, gfs2_dup_block);
 		bc->ea_count++;
@@ -329,7 +328,7 @@
 			ret = 1;
 		}
 		else {
-			log_debug("Setting %"PRIu64 " (0x%" PRIx64 ") to eattr block\n",
+			log_debug("Setting %" PRIu64 " (0x%" PRIx64 ") to eattr block\n",
 					  (uint64_t)*leaf_bh->b_data, (uint64_t)*leaf_bh->b_data);
 			gfs2_block_set(bl, (uint64_t)*leaf_bh->b_data, gfs2_meta_eattr);
 			bc->ea_count++;
@@ -432,7 +431,7 @@
 	       struct gfs2_buffer_head **bh, void *private)
 {
 	struct gfs2_block_query q = {0};
-	log_crit("Clearing leaf %"PRIu64" (0x%" PRIx64 ")\n", block, block);
+	log_crit("Clearing leaf %" PRIu64 " (0x%" PRIx64 ")\n", block, block);
 
 	if(gfs2_block_check(bl, block, &q)) {
 		stack;
@@ -462,7 +461,7 @@
 	 * matter too much */
 	find_di(sbp, block, &di);
 	if(di) {
-		log_err("Attempting to add directory block %"PRIu64
+		log_err("Attempting to add directory block %" PRIu64
 				" (0x%" PRIx64 ") which is already in list\n", block, block);
 		return -1;
 	}
@@ -472,7 +471,7 @@
 		return -1;
 	}
 	if(!memset(newdi, 0, sizeof(*newdi))) {
-		log_crit("error while zeroing dir_info structure\n");
+		log_crit("Error while zeroing dir_info structure\n");
 		return -1;
 	}
 
@@ -498,17 +497,17 @@
 
 	ip = inode_get(sdp, bh);
 	if (ip->i_di.di_num.no_addr != block) {
-		log_err("inode #%" PRIu64 " (0x%" PRIx64
+		log_err("Inode #%" PRIu64 " (0x%" PRIx64
 				"): Bad inode address found: %"	PRIu64 " (0x%" PRIx64 ")\n",
 				block, block, ip->i_di.di_num.no_addr,
 				ip->i_di.di_num.no_addr);
 		if(query(&opts, "Fix address in inode at block %"
-				 PRIu64" (0x%" PRIx64 ")? (y/n) ", block, block)) {
+				 PRIu64 " (0x%" PRIx64 ")? (y/n) ", block, block)) {
 			ip->i_di.di_num.no_addr = ip->i_di.di_num.no_formal_ino = block;
 			gfs2_dinode_out(&ip->i_di, ip->i_bh->b_data);
 			f = updated;
 		} else
-			log_err("Address in inode at block %"PRIu64
+			log_err("Address in inode at block %" PRIu64
 				 " (0x%" PRIx64 ") not fixed\n", block, block);
 	}
 
@@ -619,7 +618,7 @@
 	/* FIXME: fix height and depth here - wasn't implemented in
 	 * old fsck either, so no biggy... */
 	if (ip->i_di.di_height < compute_height(sdp, ip->i_di.di_size)){
-		log_warn("Dinode #%"PRIu64" (0x%" PRIx64 ") has bad height  "
+		log_warn("Dinode #%" PRIu64 " (0x%" PRIx64 ") has bad height  "
 				 "Found %u, Expected >= %u\n", ip->i_di.di_num.no_addr, 
 				 ip->i_di.di_num.no_addr, ip->i_di.di_height,
 				 compute_height(sdp, ip->i_di.di_size));
@@ -678,7 +677,7 @@
 
 	if (ip->i_di.di_blocks != 
 		(1 + bc.indir_count + bc.data_count + bc.ea_count)) {
-		log_err("inode %" PRIu64 " (0x%" PRIx64 "): Ondisk block count (%"
+		log_err("Inode %" PRIu64 " (0x%" PRIx64 "): Ondisk block count (%"
 				PRIu64 ") does not match what fsck found (%" PRIu64 ")\n",
 				ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr,
 				ip->i_di.di_blocks,
@@ -702,7 +701,7 @@
 			  uint64_t block)
 {
 	if (gfs2_check_meta(bh, 0)) {
-		log_debug("Found invalid metadata at %"PRIu64" (0x%" PRIx64 ")\n",
+		log_debug("Found invalid metadata at %" PRIu64 " (0x%" PRIx64 ")\n",
 				  block, block);
 		if(gfs2_block_set(bl, block, gfs2_meta_inval)) {
 			stack;
@@ -775,13 +774,14 @@
 
 	for (tmp = sbp->rglist.next; tmp != &sbp->rglist;
 	     tmp = tmp->next, rg_count++){
-		log_info("Checking metadata in Resource Group %"PRIu64"\n", rg_count);
+		log_info("Checking metadata in Resource Group #%" PRIu64 "\n",
+				 rg_count);
 		rgd = osi_list_entry(tmp, struct rgrp_list, list);
 		if(gfs2_rgrp_read(sbp, rgd)){
 			stack;
 			return -1;
 		}
-		log_debug("RG at %"PRIu64" (0x%" PRIx64 ") is %u long\n",
+		log_debug("RG at %" PRIu64 " (0x%" PRIx64 ") is %u long\n",
 				  rgd->ri.ri_addr, rgd->ri.ri_addr, rgd->ri.ri_length);
 		for (i = 0; i < rgd->ri.ri_length; i++) {
 			if(gfs2_block_set(bl, rgd->ri.ri_addr + i, gfs2_meta_other)){
--- cluster/gfs2/fsck/pass1b.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/pass1b.c	2006/06/12 20:41:43	1.3
@@ -21,7 +21,6 @@
 #include "fsck.h"
 #include "osi_list.h"
 #include "util.h"
-#include "log.h"
 #include "metawalk.h"
 #include "inode_hash.h"
 
@@ -146,10 +145,11 @@
 			if(id->block_no == de->de_inum.no_addr) {
 				id->name = strdup(filename);
 				id->parent = ip->i_di.di_num.no_addr;
-				log_debug("Duplicate block %"PRIu64
-					  " is in file or directory %"PRIu64
-					  " named %s\n", id->block_no,
-					  ip->i_di.di_num.no_addr, filename);
+				log_debug("Duplicate block %" PRIu64 " (0x%" PRIx64
+						  ") is in file or directory %" PRIu64
+						  " (0x%" PRIx64 ") named %s\n", id->block_no,
+						  id->block_no, ip->i_di.di_num.no_addr,
+						  ip->i_di.di_num.no_addr, filename);
 				/* If there are duplicates of
 				 * duplicates, I guess we'll miss them
 				 * here */
@@ -169,12 +169,12 @@
 		return 1;
 	if(block == dh->b->block_no) {
 		log_err("Found dup in inode \"%s\" (block #%"PRIu64
-			") with block #%"PRIu64"\n",
-			dh->id->name ? dh->id->name : "unknown name",
-			ip->i_di.di_num.no_addr, block);
-		log_err("inode %s is in directory %"PRIu64"\n",
-			dh->id->name ? dh->id->name : "",
-			dh->id->parent);
+				") with block #%"PRIu64"\n",
+				dh->id->name ? dh->id->name : "unknown name",
+				ip->i_di.di_num.no_addr, block);
+		log_err("Inode %s is in directory %"PRIu64" (0x%" PRIx64 ")\n",
+				dh->id->name ? dh->id->name : "",
+				dh->id->parent, dh->id->parent);
 		inode_hash_remove(inode_hash, ip->i_di.di_num.no_addr);
 		/* Setting the block to invalid means the inode is
 		 * cleared in pass2 */
@@ -191,12 +191,14 @@
 		return 1;
 	}
 	if(block == dh->b->block_no) {
-		log_err("Found dup in inode \"%s\" (block #%"PRIu64
-				") with block #%"PRIu64"\n",
+		log_err("Found dup in inode \"%s\" for block #%" PRIu64
+				" (0x%" PRIx64 ") at block #%" PRIu64 " (0x%" PRIx64 ")\n",
 				dh->id->name ? dh->id->name : "unknown name",
-				ip->i_di.di_num.no_addr, block);
-		log_err("inode %s is in directory %"PRIu64"\n",
-				dh->id->name ? dh->id->name : "", dh->id->parent);
+				ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr, block,
+				block);
+		log_err("Inode %s is in directory %"PRIu64" (0x%" PRIx64 ")\n",
+				dh->id->name ? dh->id->name : "", dh->id->parent,
+				dh->id->parent);
 		inode_hash_remove(inode_hash, ip->i_di.di_num.no_addr);
 		/* Setting the block to invalid means the inode is
 		 * cleared in pass2 */
@@ -215,18 +217,20 @@
 	if(dh->ref_count == 1)
 		return 1;
 	if(block == dh->b->block_no) {
-		log_err("Found dup in inode \"%s\" (block #%"PRIu64
-			") with block #%"PRIu64"\n",
-			dh->id->name ? dh->id->name : "unknown name",
-			ip->i_di.di_num.no_addr, block);
-		log_err("inode %s is in directory %"PRIu64"\n",
-			dh->id->name ? dh->id->name : "",
-			dh->id->parent);
+		log_err("Found dup in inode \"%s\" with address #%" PRIu64
+				" (0x%" PRIx64 ") with block #%" PRIu64 " (0x%" PRIx64 ")\n",
+				dh->id->name ? dh->id->name : "unknown name",
+				ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr, block,
+				block);
+		log_err("Inode %s is in directory %" PRIu64 " (0x%" PRIx64 ")\n",
+				dh->id->name ? dh->id->name : "",
+				dh->id->parent, dh->id->parent);
 		gfs2_block_set(bl, ip->i_di.di_eattr, gfs2_meta_inval);
 	}
 
 	return 0;
 }
+
 static int clear_dup_eattr_leaf(struct gfs2_inode *ip, uint64_t block,
 				uint64_t parent, struct gfs2_buffer_head **bh, void *private)
 {
@@ -234,13 +238,14 @@
 	if(dh->ref_count == 1)
 		return 1;
 	if(block == dh->b->block_no) {
-		log_err("Found dup in inode \"%s\" (block #%"PRIu64
-				") with block #%"PRIu64"\n",
+		log_err("Found dup in inode \"%s\" with address #%" PRIu64
+				" (0x%" PRIx64 ") with block #%" PRIu64 " (0x%" PRIx64 ")\n",
 				dh->id->name ? dh->id->name : "unknown name",
-				ip->i_di.di_num.no_addr, block);
-		log_err("inode %s is in directory %"PRIu64"\n",
-				dh->id->name ? dh->id->name : "", dh->id->parent);
-
+				ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr, block,
+				block);
+		log_err("Inode %s is in directory %" PRIu64 " (0x%" PRIx64 ")\n",
+				dh->id->name ? dh->id->name : "",
+				dh->id->parent, dh->id->parent);
 		/* mark the main eattr block invalid */
 		gfs2_block_set(bl, ip->i_di.di_eattr, gfs2_meta_inval);
 	}
@@ -299,13 +304,14 @@
 	if(dh->ref_count == 1)
 		return 1;
 	if(block == dh->b->block_no) {
-		log_err("Found dup in inode \"%s\" (block #%"PRIu64
-			") with block #%"PRIu64"\n",
-			dh->id->name ? dh->id->name : "unknown name",
-			ip->i_di.di_num.no_addr, block);
-		log_err("inode %s is in directory %"PRIu64"\n",
-			dh->id->name ? dh->id->name : "",
-			dh->id->parent);
+		log_err("Found dup in inode \"%s\" with address #%" PRIu64
+				" (0x%" PRIx64 ") with block #%" PRIu64 " (0x%" PRIx64 ")\n",
+				dh->id->name ? dh->id->name : "unknown name",
+				ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr, block,
+				block);
+		log_err("Inode %s is in directory %" PRIu64 " (0x%" PRIx64 ")\n",
+				dh->id->name ? dh->id->name : "",
+				dh->id->parent, dh->id->parent);
 		/* mark the main eattr block invalid */
 		gfs2_block_set(bl, ip->i_di.di_eattr, gfs2_meta_inval);
 	}
@@ -333,8 +339,9 @@
 	};
 
 	ip = gfs2_load_inode(sbp, inode); /* bread, inode_get */
-	log_info("Checking inode %"PRIu64"'s metatree for references to block %"PRIu64"\n",
-		 inode, b->block_no);
+	log_info("Checking inode %" PRIu64 " (0x%" PRIx64
+			 ")'s metatree for references to block %" PRIu64 " (0x%" PRIx64
+			 ")\n", inode, inode, b->block_no, b->block_no);
 	if(check_metatree(ip, &find_refs)) {
 		stack;
 		inode_put(ip, not_updated); /* out, brelse, free */
@@ -351,9 +358,9 @@
 			log_crit("Unable to zero inode_with_dups structure\n");
 			return -1;
 		}
-		log_debug("Found %d entries with block %"PRIu64
-			  " in inode #%"PRIu64"\n",
-			  myfi.found, b->block_no, inode);
+		log_debug("Found %d entries with block %" PRIu64
+				  " (0x%" PRIx64 ") in inode #%" PRIu64 " (0x%" PRIx64 ")\n",
+				  myfi.found, b->block_no, b->block_no, inode, inode);
 		id->dup_count = myfi.found;
 		id->block_no = inode;
 		id->ea_only = myfi.ea_only;
@@ -380,7 +387,8 @@
 		}
 		b->block_no = block_no;
 		osi_list_init(&b->ref_inode_list);
-		log_notice("Found dup block at %"PRIu64"\n", block_no);
+		log_notice("Found dup block at %"PRIu64" (0x%" PRIx64 ")\n", block_no,
+				   block_no);
 		osi_list_add(&b->list, &dup_list);
 		block_no++;
 	}
@@ -412,14 +420,16 @@
 		dh.ref_inode_count++;
 		dh.ref_count += id->dup_count;
 	}
-	log_notice("Block %"PRIu64" has %d inodes referencing it for"
-		   "a total of %d duplicate references\n",
-		   b->block_no, dh.ref_inode_count, dh.ref_count);
+	log_notice("Block %" PRIu64 " (0x%" PRIx64 ") has %d inodes referencing it"
+			   " for a total of %d duplicate references\n",
+			   b->block_no, b->block_no, dh.ref_inode_count,
+			   dh.ref_inode_count, dh.ref_count);
 
 	osi_list_foreach(tmp, &b->ref_inode_list) {
 		id = osi_list_entry(tmp, struct inode_with_dups, list);
 		log_warn("Inode %s has %d reference(s) to block %"PRIu64
-			 "\n", id->name, id->dup_count, b->block_no);
+				 " (0x%" PRIx64 ")\n", id->name, id->dup_count, b->block_no,
+				 b->block_no);
 		/* FIXME: User input */
 		log_warn("Clearing...\n");
 		ip = gfs2_load_inode(sbp, id->block_no);
@@ -471,9 +481,11 @@
 	/* Rescan the fs looking for pointers to blocks that are in
 	 * the duplicate block map */
 	log_info("Scanning filesystem for inodes containing duplicate blocks...\n");
-	log_debug("Filesystem has %"PRIu64" blocks total\n", last_fs_block);
+	log_debug("Filesystem has %"PRIu64" (0x%" PRIx64 ") blocks total\n",
+			  last_fs_block, last_fs_block);
 	for(i = 0; i < last_fs_block; i += 1) {
-		log_debug("Scanning block %"PRIu64" for inodes\n", i);
+		log_debug("Scanning block %" PRIu64 " (0x%" PRIx64 ") for inodes\n",
+				  i, i);
 		if(gfs2_block_check(bl, i, &q)) {
 			stack;
 			return -1;
--- cluster/gfs2/fsck/pass1c.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/pass1c.c	2006/06/12 20:41:43	1.3
@@ -19,7 +19,6 @@
 #include "libgfs2.h"
 #include "fsck.h"
 #include "util.h"
-#include "log.h"
 #include "metawalk.h"
 
 static int remove_eattr_entry(struct gfs2_sbd *sdp,
@@ -27,7 +26,8 @@
 							  struct gfs2_ea_header *curr,
 							  struct gfs2_ea_header *prev)
 {
-	log_warn("Removing EA located in block #%"PRIu64".\n", leaf_bh->b_blocknr);
+	log_warn("Removing EA located in block #%"PRIu64" (0x%" PRIx64 ").\n",
+			 leaf_bh->b_blocknr, leaf_bh->b_blocknr);
 	if(!prev)
 		curr->ea_type = GFS2_EATYPE_UNUSED;
 	else
@@ -199,11 +199,13 @@
 	log_info("Looking for inodes containing ea blocks...\n");
 	while (!gfs2_find_next_block_type(bl, gfs2_eattr_block, &block_no)) {
 
-		log_info("EA in inode %"PRIu64"\n", block_no);
+		log_info("EA in inode %"PRIu64" (0x%" PRIx64 ")\n", block_no,
+				 block_no);
 		bh = bread(sbp, block_no);
 		ip = inode_get(sbp, bh);
 
-		log_debug("Found eattr at %"PRIu64"\n", ip->i_di.di_eattr);
+		log_debug("Found eattr at %"PRIu64" (0x%" PRIx64 ")\n",
+				  ip->i_di.di_eattr, ip->i_di.di_eattr);
 		/* FIXME: Handle walking the eattr here */
 		error = check_inode_eattr(ip, &pass1c_fxns);
 		if(error < 0) {
--- cluster/gfs2/fsck/pass2.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/pass2.c	2006/06/12 20:41:43	1.3
@@ -21,7 +21,6 @@
 #include "libgfs2.h"
 #include "fsck.h"
 #include "util.h"
-#include "log.h"
 #include "eattr.h"
 #include "metawalk.h"
 #include "link.h"
@@ -87,17 +86,18 @@
 /* Set children's parent inode in dir_info structure - ext2 does not set
  * dotdot inode here, but instead in pass3 - should we? */
 int set_parent_dir(struct gfs2_sbd *sbp, uint64_t childblock,
-		   uint64_t parentblock)
+				   uint64_t parentblock)
 {
 	struct dir_info *di;
 
 	if(!find_di(sbp, childblock, &di)) {
 		if(di->dinode == childblock) {
 			if (di->treewalk_parent) {
-				log_err("Another directory (%" PRIu64
-					") already contains"
-					" this child - checking %" PRIu64 "\n",
-					di->treewalk_parent, parentblock);
+				log_err("Another directory at block %" PRIu64
+						" (0x%" PRIx64 ") already contains"
+						" this child - checking %" PRIu64 " (0x%" PRIx64 ")\n",
+						di->treewalk_parent, di->treewalk_parent,
+						parentblock, parentblock);
 				return 1;
 			}
 			di->treewalk_parent = parentblock;
@@ -124,9 +124,9 @@
 			if(di->dotdot_parent && sbp->md.rooti->i_di.di_num.no_addr
 			   != di->dinode) {
 				/* This should never happen */
-				log_crit("dotdot parent already set for"
+				log_crit("Dotdot parent already set for"
 						 " block %"PRIu64" (0x%" PRIx64 ") -> %" PRIu64
-						 " (0x%" PRIx64")\n", childblock, childblock,
+						 " (0x%" PRIx64 ")\n", childblock, childblock,
 						 di->dotdot_parent, di->dotdot_parent);
 				return -1;
 			}
@@ -273,7 +273,7 @@
 
 	if(gfs2_check_range(ip->i_sbd, entryblock)) {
 		log_err("Block # referenced by directory entry %s is out of range\n",
-			tmp_name);
+				tmp_name);
 		if(query(&opts, 
 				 "Clear directory entry tp out of range block? (y/n) ")) {
 			log_err("Clearing %s\n", tmp_name);
@@ -375,12 +375,13 @@
 		}
 	}
 
-
 	if(!strcmp(".", tmp_name)) {
 		log_debug("Found . dentry\n");
 
 		if(ds->dotdir) {
-			log_err("already found '.' entry\n");
+			log_err("Already found '.' entry in directory %" PRIu64 " (0x%"
+					PRIx64 ")\n",
+					ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr);
 			if(query(&opts, "Clear duplicate '.' entry? (y/n) ")) {
 
 				entry_ip = gfs2_load_inode(sbp, de->de_inum.no_addr);
@@ -407,9 +408,12 @@
 
 		/* check that '.' refers to this inode */
 		if(de->de_inum.no_addr != ip->i_di.di_num.no_addr) {
-			log_err("'.' entry's value incorrect.  Points to %"PRIu64
-					" when it should point to %" PRIu64 ".\n",
-					de->de_inum.no_addr, ip->i_di.di_num.no_addr);
+			log_err("'.' entry's value incorrect in directory %" PRIu64
+					" (0x%" PRIx64 ").  Points to %"PRIu64
+					" (0x%" PRIx64 ") when it should point to %" PRIu64
+					" (0x%" PRIx64 ").\n",
+					de->de_inum.no_addr, de->de_inum.no_addr,
+					ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr);
 			if(query(&opts, "Remove '.' reference? (y/n) ")) {
 				entry_ip = gfs2_load_inode(sbp, de->de_inum.no_addr);
 				check_inode_eattr(entry_ip, &clear_eattrs);
@@ -441,7 +445,9 @@
 	if(!strcmp("..", tmp_name)) {
 		log_debug("Found .. dentry\n");
 		if(ds->dotdotdir) {
-			log_err("already found '..' entry\n");
+			log_err("Already found '..' entry in directory %" PRIu64 " (0x%"
+					PRIx64 ")\n",
+					ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr);
 			if(query(&opts, "Clear duplicate '..' entry? (y/n) ")) {
 
 				entry_ip = gfs2_load_inode(sbp, de->de_inum.no_addr);
@@ -465,8 +471,10 @@
 		}
 
 		if(q.block_type != gfs2_inode_dir) {
-			log_err("Found '..' entry pointing to"
-				" something that's not a directory");
+			log_err("Found '..' entry  in directory %" PRIu64 " (0x%"
+					PRIx64 ") pointing to"
+					" something that's not a directory",
+					ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr);
 			if(query(&opts, "Clear bad '..' directory entry? (y/n) ")) {
 				entry_ip = gfs2_load_inode(sbp, de->de_inum.no_addr);
 				check_inode_eattr(entry_ip, &clear_eattrs);
@@ -517,8 +525,8 @@
 	log_debug("Found plain directory dentry\n");
 	error = set_parent_dir(sbp, entryblock, ip->i_di.di_num.no_addr);
 	if(error > 0) {
-		log_err("%s: Hard link to block %"PRIu64" (0x%" PRIx64 ") detected.\n",
-				filename, entryblock, entryblock);
+		log_err("%s: Hard link to block %" PRIu64" (0x%" PRIx64
+				") detected.\n", filename, entryblock, entryblock);
 
 		if(query(&opts, "Clear hard link to directory? (y/n) ")) {
 			*update = 1;
@@ -580,8 +588,8 @@
 	gfs2_block_set(bl, ip->i_di.di_num.no_addr, gfs2_inode_dir);
 	add_to_dir_list(sbp, ip->i_di.di_num.no_addr);
 
-	/* Attach l+f to it */
-	lf_dip = createi(sbp->md.rooti, "l+f", 00700, 0);
+	/* Attach lost+found to it */
+	lf_dip = createi(sbp->md.rooti, "lost+found", 00700, 0);
 
 	if(lf_dip){
 		inode_put(lf_dip, updated);
@@ -630,7 +638,7 @@
 
 		/* if there are errors with the root inode here, we need to
 		 * create a new root inode and get it all setup - of course,
-		 * everything will be in l+f then, but we *need* a root inode
+		 * everything will be in lost+found then, but we *need* a root inode
 		 * before we can do any of that.
 		 */
 
@@ -701,18 +709,20 @@
 	bh = bread(sbp, rootblock);
 	ip = inode_get(sbp, bh);
 	if(ip->i_di.di_entries != ds.entry_count) {
-		log_err("inode %" PRIu64 " (0x%" PRIx64
+		log_err("Inode %" PRIu64 " (0x%" PRIx64
 				"): Entries is %d - should be %d\n",
 				ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr,	
 				ip->i_di.di_entries, ds.entry_count);
-		if(query(&opts, "Fix entries for inode %"PRIu64"? (y/n) ",
-			 ip->i_di.di_num.no_addr)) {
+		if(query(&opts, "Fix entries for inode %" PRIu64 " (0x%" PRIx64
+				 ")? (y/n) ", ip->i_di.di_num.no_addr,
+				 ip->i_di.di_num.no_addr)) {
 			ip->i_di.di_entries = ds.entry_count;
 			log_warn("Entries updated\n");
 			update = 1;
 		} else {
-			log_err("Entries for inode %"PRIu64" left out of sync\n",
-					ip->i_di.di_num.no_addr);
+			log_err("Entries for inode %" PRIu64 " (0x%" PRIx64
+					") left out of sync\n",
+					ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr);
 		}
 	}
 
@@ -796,7 +806,8 @@
 				/* FIXME: factor */
 				if(query(&opts, "Remove directory entry for bad"
 						 " inode %"PRIu64" (0x%" PRIx64 ") in %"PRIu64
-						 "? (y/n)", i, i, di->treewalk_parent)) {
+						 " (0x%" PRIx64 ")? (y/n)", i, i, di->treewalk_parent,
+						 di->treewalk_parent)) {
 					error = remove_dentry_from_dir(sbp, di->treewalk_parent,
 												   i);
 					if(error < 0) {
@@ -805,13 +816,13 @@
 					}
 					if(error > 0) {
 						log_warn("Unable to find dentry for %"
-								 PRIu64" (0x%" PRIx64 ") in %"PRIu64"\n",
-								 i, i, di->treewalk_parent);
+								 PRIu64 " (0x%" PRIx64 ") in %" PRIu64
+								 " (0x%" PRIx64 ")\n", i, i,
+								 di->treewalk_parent, di->treewalk_parent);
 					}
 					log_warn("Directory entry removed\n");
-				} else {
-					log_err("Directory entry to invalid inode remains\n");
-				}
+				} else
+					log_err("Directory entry to invalid inode remains.\n");
 			}
 			gfs2_block_set(bl, i, gfs2_meta_inval);
 		}
--- cluster/gfs2/fsck/pass3.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/pass3.c	2006/06/12 20:41:43	1.3
@@ -22,7 +22,6 @@
 #include "fsck.h"
 #include "lost_n_found.h"
 #include "link.h"
-#include "log.h"
 #include "metawalk.h"
 
 static int attach_dotdot_to(struct gfs2_sbd *sbp, uint64_t newdotdot,
@@ -42,14 +41,14 @@
 	 * this case? */
 
 	filename_len = strlen("..");
-	if(!(filename = malloc(sizeof(char) * filename_len))) {
+	if(!(filename = malloc((sizeof(char) * filename_len) + 1))) {
 		log_err("Unable to allocate name\n");
 		inode_put(ip, not_updated);
 		inode_put(pip, not_updated);
 		stack;
 		return -1;
 	}
-	if(!memset(filename, 0, sizeof(char) * filename_len)) {
+	if(!memset(filename, 0, (sizeof(char) * filename_len) + 1)) {
 		log_err("Unable to zero name\n");
 		inode_put(ip, not_updated);
 		inode_put(pip, not_updated);
@@ -80,20 +79,22 @@
 		return NULL;
 
 	if(di->dotdot_parent != di->treewalk_parent) {
-		log_warn(".. and treewalk conections are not the same for %"PRIu64
-				 "\n", di->dinode);
-		log_notice("%"PRIu64" %"PRIu64"\n", di->dotdot_parent,
+		log_warn("Directory '..' and treewalk connections disagree for inode %"
+				 PRIu64 " (0x%" PRIx64 ")\n", di->dinode, di->dinode);
+		log_notice("'..' has %" PRIu64" (0x%" PRIx64 "), treewalk has %"
+				   PRIu64" (0x%" PRIx64 ")\n", di->dotdot_parent,
+				   di->dotdot_parent, di->treewalk_parent,
 				   di->treewalk_parent);
 		if(gfs2_block_check(bl, di->dotdot_parent, &q_dotdot)) {
 			log_err("Unable to find block %"PRIu64
-				" in block map\n",
-				di->dotdot_parent);
+					" (0x%" PRIx64 ") in block map.\n",
+					di->dotdot_parent, di->dotdot_parent);
 			return NULL;
 		}
 		if(gfs2_block_check(bl, di->treewalk_parent, &q_treewalk)) {
 			log_err("Unable to find block %"PRIu64
-				" in block map\n",
-				di->treewalk_parent);
+					" (0x%" PRIx64 ") in block map\n",
+					di->treewalk_parent, di->treewalk_parent);
 			return NULL;
 		}
 		/* if the dotdot entry isn't a directory, but the
@@ -101,34 +102,33 @@
 		 * entry isn't a directory, but the dotdot is, dotdot
 		 * is correct - if both are directories, which do we
 		 * choose? if neither are directories, we have a
-		 * problem - need to move this directory into l+f
+		 * problem - need to move this directory into lost+found
 		 */
 		if(q_dotdot.block_type != gfs2_inode_dir) {
 			if(q_treewalk.block_type != gfs2_inode_dir) {
-				log_err( "Orphaned directory, move to l+f\n");
+				log_err( "Orphaned directory, move to lost+found\n");
 				return NULL;
 			}
 			else {
 				log_warn("Treewalk parent is correct,"
-					 " fixing dotdot -> %"PRIu64"\n",
-					 di->treewalk_parent);
+						 " fixing dotdot -> %"PRIu64" (0x%" PRIx64 ")\n",
+						 di->treewalk_parent, di->treewalk_parent);
 				attach_dotdot_to(sbp, di->treewalk_parent,
-						 di->dotdot_parent, di->dinode);
+								 di->dotdot_parent, di->dinode);
 				di->dotdot_parent = di->treewalk_parent;
-
 			}
 		}
 		else {
 			if(q_treewalk.block_type != gfs2_inode_dir) {
 				int error = 0;
 				log_warn(".. parent is valid, but treewalk"
-					 "is bad - reattaching to l+f");
+						 "is bad - reattaching to lost+found");
 
 				/* FIXME: add a dinode for this entry instead? */
 				if(query(&opts, "Remove directory entry for bad"
-					 " inode %"PRIu64" in %"PRIu64
-					 "? (y/n)", di->dinode,
-					 di->treewalk_parent)) {
+						 " inode %"PRIu64" (0x%" PRIx64 ") in %"PRIu64
+						 " (0x%" PRIx64 ")? (y/n)", di->dinode, di->dinode,
+						 di->treewalk_parent, di->treewalk_parent)) {
 					error = remove_dentry_from_dir(sbp, di->treewalk_parent,
 												   di->dinode);
 					if(error < 0) {
@@ -136,9 +136,10 @@
 						return NULL;
 					}
 					if(error > 0) {
-						log_warn("Unable to find dentry for %"
-							 PRIu64" in %"PRIu64"\n",
-							 di->dinode, di->treewalk_parent);
+						log_warn("Unable to find dentry for block %"
+								 PRIu64" (0x%" PRIx64 ") in %" PRIu64 " (0x%"
+								 PRIx64 ")\n",di->dinode, di->dinode,
+								 di->treewalk_parent, di->treewalk_parent);
 					}
 					log_warn("Directory entry removed\n");
 				} else {
@@ -150,32 +151,30 @@
 			}
 			else {
 				log_err("Both .. and treewalk parents are "
-					"directories, going with treewalk for "
-					"now...\n");
+						"directories, going with treewalk for "
+						"now...\n");
 				attach_dotdot_to(sbp, di->treewalk_parent,
-						 di->dotdot_parent, di->dinode);
+								 di->dotdot_parent, di->dinode);
 				di->dotdot_parent = di->treewalk_parent;
-
 			}
 		}
 	}
 	else {
 		if(gfs2_block_check(bl, di->dotdot_parent, &q_dotdot)) {
 			log_err("Unable to find parent block %"PRIu64
-				" in block map\n",
-				di->dotdot_parent);
+					" (0x%" PRIx64 ")  in block map\n",
+					di->dotdot_parent, di->dotdot_parent);
 			return NULL;
 		}
 		if(q_dotdot.block_type != gfs2_inode_dir) {
-			log_err("Orphaned directory, move to l+f (Block #%"
-				PRIu64")\n", di->dinode);
+			log_err("Orphaned directory at block %" PRIu64 " (0x%" PRIx64
+					") moved to lost+found\n", di->dinode, di->dinode);
 			return NULL;
 		}
 	}
 	find_di(sbp, di->dotdot_parent, &pdi);
 
 	return pdi;
-
 }
 
 /**
@@ -223,15 +222,13 @@
 					return -1;
 				}
 				if(q.bad_block) {
-					log_err("Found unlinked directory containing"
-						"bad block\n");
+					log_err("Found unlinked directory containing bad block\n");
 					if(query(&opts,
 					   "Clear unlinked directory with bad blocks? (y/n) ")) {
 						gfs2_block_set(bl, di->dinode, gfs2_block_free);
 						break;
-					} else {
-						log_err("Unlinked directory with bad blocks remains\n");
-					}
+					} else
+						log_err("Unlinked directory with bad block remains\n");
 				}
 				if(q.block_type != gfs2_inode_dir &&
 				   q.block_type != gfs2_inode_file &&
@@ -246,7 +243,8 @@
 					break;
 				}
 
-				log_err("Found unlinked directory %"PRIu64"\n", di->dinode);
+				log_err("Found unlinked directory at block %" PRIu64
+						" (0x%" PRIx64 ")\n", di->dinode, di->dinode);
 				ip = gfs2_load_inode(sbp, di->dinode);
 				/* Don't skip zero size directories
 				 * with eattrs */
@@ -260,13 +258,13 @@
 						log_err("Zero-size unlinked directory remains\n");
 					}
 				}
-				if(query(&opts, "Add unlinked directory to l+f? (y/n) ")) {
+				if(query(&opts, "Add unlinked directory to lost+found? (y/n) ")) {
 					if(add_inode_to_lf(ip)) {
 						inode_put(ip, not_updated);
 						stack;
 						return -1;
 					}
-					log_warn("Directory relinked to l+f\n");
+					log_warn("Directory relinked to lost+found\n");
 				} else {
 					log_err("Unlinked directory remains unlinked\n");
 				}
@@ -274,15 +272,15 @@
 				break;
 			}
 			else {
-				log_info("Directory at block %"PRIu64
-					 " connected\n", di->dinode);
+				log_info("Directory at block %" PRIu64 " (0x%" 
+						 PRIx64 ") connected\n", di->dinode, di->dinode);
 			}
 			di = tdi;
 		}
 	}
 	}
 	if(lf_dip)
-		log_debug("At end of pass3, l+f entries is %u\n",
+		log_debug("At end of pass3, lost+found entries is %u\n",
 				  lf_dip->i_di.di_entries);
 	return 0;
 }
--- cluster/gfs2/fsck/pass4.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/pass4.c	2006/06/12 20:41:43	1.3
@@ -18,7 +18,6 @@
 #include "libgfs2.h"
 #include "fsck.h"
 #include "lost_n_found.h"
-#include "log.h"
 #include "inode_hash.h"
 
 /* Updates the link count of an inode to what the fsck has seen for
@@ -26,13 +25,13 @@
 int fix_inode_count(struct gfs2_sbd *sbp, struct inode_info *ii,
 					struct gfs2_inode *ip)
 {
-	log_info("Fixing inode count for %"PRIu64" (0x%" PRIx64") \n",
+	log_info("Fixing inode count for %" PRIu64 " (0x%" PRIx64 ") \n",
 			 ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr);
 	if(ip->i_di.di_nlink == ii->counted_links)
 		return 0;
 	ip->i_di.di_nlink = ii->counted_links;
 
-	log_debug("Changing inode %"PRIu64" (0x%" PRIx64") to have %u links\n",
+	log_debug("Changing inode %" PRIu64 " (0x%" PRIx64 ") to have %u links\n",
 			  ip->i_di.di_num.no_addr, ip->i_di.di_num.no_addr,
 			  ii->counted_links);
 	return 0;
@@ -54,10 +53,10 @@
 			log_crit("osi_list_foreach broken in scan_info_list!!\n");
 			exit(1);
 		}
-		log_info("Checking reference count on inode at block %"PRIu64
-			 " (0x%" PRIx64 "\n", ii->inode, ii->inode);
+		log_info("Checking reference count on inode at block %" PRIu64
+			 " (0x%" PRIx64 ")\n", ii->inode, ii->inode);
 		if(ii->counted_links == 0) {
-			log_err("Found unlinked inode at %"PRIu64" (0x%"PRIx64")\n",
+			log_err("Found unlinked inode at %" PRIu64 " (0x%" PRIx64 ")\n",
 					ii->inode, ii->inode);
 			if(gfs2_block_check(bl, ii->inode, &q)) {
 				stack;
@@ -98,7 +97,7 @@
 				}
 
 			}
-			if(query(&opts, "Add unlinked inode to l+f? (y/n)")) {
+			if(query(&opts, "Add unlinked inode to lost+found? (y/n)")) {
 				f = updated;
 				if(add_inode_to_lf(ip)) {
 					stack;
@@ -114,31 +113,31 @@
 			inode_put(ip, f);
 		} /* if(ii->counted_links == 0) */
 		else if(ii->link_count != ii->counted_links) {
-			log_err("Link count inconsistent for inode %"PRIu64
-					" (0x%" PRIx64") - %u %u\n", ii->inode, 
+			log_err("Link count inconsistent for inode %" PRIu64
+					" (0x%" PRIx64 ") has %u but fsck found %u.\n", ii->inode, 
 					ii->inode, ii->link_count, ii->counted_links);
 			/* Read in the inode, adjust the link count,
 			 * and write it back out */
 			if(query(&opts, "Update link count for inode %"
-				 PRIu64" (0x%" PRIx64") ? (y/n) ", ii->inode, ii->inode)) {
+				 PRIu64 " (0x%" PRIx64 ") ? (y/n) ", ii->inode, ii->inode)) {
 				ip = gfs2_load_inode(sbp, ii->inode); /* bread, inode_get */
 				fix_inode_count(sbp, ii, ip);
 				inode_put(ip, updated); /* out, brelse, free */
 				log_warn("Link count updated for inode %"
-						 PRIu64" (0x%" PRIx64") \n", ii->inode, ii->inode);
+						 PRIu64 " (0x%" PRIx64 ") \n", ii->inode, ii->inode);
 			} else {
-				log_err("Link count for inode %" PRIu64" (0x%" PRIx64
-						")  still incorrect\n", ii->inode, ii->inode);
+				log_err("Link count for inode %" PRIu64 " (0x%" PRIx64
+						") still incorrect\n", ii->inode, ii->inode);
 			}
 		}
-		log_debug("block %"PRIu64" (0x%" PRIx64") has link count %d\n",
+		log_debug("block %" PRIu64 " (0x%" PRIx64 ") has link count %d\n",
 				  ii->inode, ii->inode, ii->link_count);
 	} /* osi_list_foreach(tmp, list) */
 
 	if (lf_addition) {
 		if(!(ii = inode_hash_search(inode_hash,
 									lf_dip->i_di.di_num.no_addr))) {
-			log_crit("Unable to find l+f inode in inode_hash!!\n");
+			log_crit("Unable to find lost+found inode in inode_hash!!\n");
 			return -1;
 		} else {
 			fix_inode_count(sbp, ii, lf_dip);
@@ -162,7 +161,7 @@
 	uint32_t i;
 	osi_list_t *list;
 	if(lf_dip)
-		log_debug("At beginning of pass4, l+f entries is %u\n",
+		log_debug("At beginning of pass4, lost+found entries is %u\n",
 				  lf_dip->i_di.di_entries);
 	for (i = 0; i < FSCK_HASH_SIZE; i++) {
 		list = &inode_hash[i];
@@ -173,7 +172,7 @@
 	}
 
 	if(lf_dip)
-		log_debug("At end of pass4, l+f entries is %u\n",
+		log_debug("At end of pass4, lost+found entries is %u\n",
 				  lf_dip->i_di.di_entries);
 	return 0;
 }
--- cluster/gfs2/fsck/pass5.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/pass5.c	2006/06/12 20:41:43	1.3
@@ -18,7 +18,6 @@
 
 #include "libgfs2.h"
 #include "fsck.h"
-#include "log.h"
 #include "fs_bits.h"
 #include "util.h"
 
@@ -78,6 +77,7 @@
 	while(byte < end) {
 		rg_status = ((*byte >> bit) & GFS2_BIT_MASK);
 		block = rg_data + *rg_block;
+		warm_fuzzy_stuff(block);
 		gfs2_block_check(bl, block, &q);
 
 		block_status = convert_mark(q.block_type, count);
@@ -139,7 +139,7 @@
 		update = 1;
 	}
 	if(rgp->rg.rg_dinodes != count[1]) {
-		log_err("inode count inconsistent: is %u should be %u\n",
+		log_err("Inode count inconsistent: is %u should be %u\n",
 				rgp->rg.rg_dinodes, count[1]);
 		rgp->rg.rg_dinodes = count[1];
 		update = 1;
@@ -180,7 +180,7 @@
 	for(tmp = sbp->rglist.next; tmp != &sbp->rglist; tmp = tmp->next){
 		enum update_flags f;
 
-		log_info("Verifying Resource Group %"PRIu64"\n", rg_count);
+		log_info("Verifying Resource Group #%" PRIu64 "\n", rg_count);
 		memset(count, 0, sizeof(count));
 		rgp = osi_list_entry(tmp, struct rgrp_list, list);
 
--- cluster/gfs2/fsck/util.c	2006/06/06 14:49:31	1.2
+++ cluster/gfs2/fsck/util.c	2006/06/12 20:41:43	1.3
@@ -21,9 +21,7 @@
 
 #include "libgfs2.h"
 #include "fs_bits.h"
-
 #include "util.h"
-#include "log.h"
 
 /**
  * compute_height




More information about the Cluster-devel mailing list