changeset 12:bce7ecd3523c

make copying data conditional
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Sat, 22 Mar 2008 18:08:53 -0400
parents 3bf4a4f40d43
children 93863bd2be09
files ino_scan.c
diffstat 1 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ino_scan.c	Sat Mar 22 07:37:57 2008 -0400
+++ b/ino_scan.c	Sat Mar 22 18:08:53 2008 -0400
@@ -27,6 +27,14 @@
 #define BLKDEV_SIZE	(104857600 / BLKSIZE)
 #define INOSIZE		256
 
+/*
+ * Should inode data be copied off the device into DUMPDIR?
+ *
+ * defined:	yes
+ * undefined:	no
+ */
+//#define COPY_DATA
+
 int fd;		/* device fd */
 int ffd = 0;	/* file fd */
 
@@ -91,6 +99,7 @@
 
 void copy_extent_data(struct xfs_bmbt_irec *irec)
 {
+#ifdef COPY_DATA
 	char buf[BLKSIZE];
 	int ret;
 	int i;
@@ -104,6 +113,7 @@
 		if (ret == -1)
 			die();
 	}
+#endif
 }
 
 void process_reclist(xfs_bmbt_rec_t *rec, __uint32_t nexts)
@@ -219,7 +229,9 @@
 
 void print_inode(off_t blk)
 {
+#ifdef COPY_DATA
 	char fname[PATH_MAX];
+#endif
 	unsigned char buf[INOSIZE];
 	struct xfs_dinode *inode = (void*) buf;
 	off_t off;
@@ -236,15 +248,18 @@
 
 		printf("Inode @ block %lu, inode within blk %lu\n", blk, off);
 
+#ifdef COPY_DATA
 		if (swap16(inode->di_core.di_mode) & S_IFREG) {
 			snprintf(fname, PATH_MAX, "%s/%08lx-%08lx", DUMPDIR, blk, off);
 			ffd = open(fname, O_CREAT | O_LARGEFILE | O_WRONLY, swap16(inode->di_core.di_mode) & 0777);
 			if (ffd == -1)
 				die();
 		}
+#endif
 
 		do_print_inode(inode);
 
+#ifdef COPY_DATA
 		if (swap16(inode->di_core.di_mode) & S_IFREG) {
 			ret = ftruncate(ffd, swap64(inode->di_core.di_size));
 			if (ret == -1)
@@ -255,6 +270,7 @@
 				die();
 			ffd = 0;
 		}
+#endif
 	}
 }