[Ocfs-tools-commits] smushran commits r183 - trunk/ocfs2/debugfs.ocfs2

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Tue Jul 20 19:34:47 CDT 2004


Author: smushran
Date: 2004-07-20 18:34:45 -0500 (Tue, 20 Jul 2004)
New Revision: 183

Modified:
   trunk/ocfs2/debugfs.ocfs2/commands.c
   trunk/ocfs2/debugfs.ocfs2/readfs.c
Log:
memalign set to blocksize

Modified: trunk/ocfs2/debugfs.ocfs2/commands.c
===================================================================
--- trunk/ocfs2/debugfs.ocfs2/commands.c	2004-07-20 18:47:22 UTC (rev 182)
+++ trunk/ocfs2/debugfs.ocfs2/commands.c	2004-07-20 23:34:45 UTC (rev 183)
@@ -220,7 +220,7 @@
 
 	/* read root inode */
 	len = 1 << gbls.blksz_bits;
-	if (!(gbls.rootin = memalign(512, len)))
+	if (!(gbls.rootin = memalign(len, len)))
 		DBGFS_FATAL("%s", strerror(errno));
 	if ((pread64(gbls.dev_fd, (char *)gbls.rootin, len,
 		     (gbls.root_blkno << gbls.blksz_bits))) == -1)
@@ -228,7 +228,7 @@
 
 	/* read sysdir inode */
 	len = 1 << gbls.blksz_bits;
-	if (!(gbls.sysdirin = memalign(512, len)))
+	if (!(gbls.sysdirin = memalign(len, len)))
 		DBGFS_FATAL("%s", strerror(errno));
 	if ((pread64(gbls.dev_fd, (char *)gbls.sysdirin, len,
 		     (gbls.sysdir_blkno << gbls.blksz_bits))) == -1)
@@ -297,7 +297,7 @@
 	}
 
 	len = 1 << gbls.blksz_bits;
-	if (!(buf = memalign(512, len)))
+	if (!(buf = memalign(len, len)))
 		DBGFS_FATAL("%s", strerror(errno));
 
 	if (opts) {
@@ -498,7 +498,7 @@
 	}
 
 	buflen = 1 << gbls.blksz_bits;
-	if (!(buf = memalign(512, buflen)))
+	if (!(buf = memalign(buflen, buflen)))
 		DBGFS_FATAL("%s", strerror(errno));
 
 	if (opts) {
@@ -659,6 +659,11 @@
 	__u32 nodenum;
 	ocfs2_super_block *sb = &(gbls.superblk->id2.i_super);
 
+	if (gbls.dev_fd == -1) {
+		printf ("device not open\n");
+		goto bail;
+	}
+
 	if (args[1])
 		nodenum = strtoull (args[1], NULL, 0);
 	else {
@@ -673,16 +678,13 @@
 
 	blknum = gbls.journal_blkno[nodenum];
 
-	if (gbls.dev_fd == -1)
-		printf ("device not open\n");
-	else {
-		if ((len = read_file (gbls.dev_fd, blknum, -1, &logbuf)) == -1)
-			goto bail;
-		out = open_pager ();
-		read_journal (out, logbuf, (__u64)len);
-		close_pager (out);
-	}
+	if ((len = read_file (gbls.dev_fd, blknum, -1, &logbuf)) == -1)
+		goto bail;
 
+	out = open_pager ();
+	read_journal (out, logbuf, (__u64)len);
+	close_pager (out);
+
 bail:
 	safefree (logbuf);
 	return ;

Modified: trunk/ocfs2/debugfs.ocfs2/readfs.c
===================================================================
--- trunk/ocfs2/debugfs.ocfs2/readfs.c	2004-07-20 18:47:22 UTC (rev 182)
+++ trunk/ocfs2/debugfs.ocfs2/readfs.c	2004-07-20 23:34:45 UTC (rev 183)
@@ -46,18 +46,27 @@
 	__u32 bits = 9;
 	__u32 buflen;
 
-	buflen = 1 << bits;
-	if (!(*buf = memalign(512, buflen)))
-		DBGFS_FATAL("%s", strerror(errno));
+	for (bits = 9; bits < 13; bits++) {
+		buflen = 1 << bits;
+		if (!(*buf = memalign(buflen, buflen)))
+			DBGFS_FATAL("%s", strerror(errno));
 
-	if ((pread64(fd, *buf, buflen, 0)) == -1)
-		DBGFS_FATAL("%s", strerror(errno));
+		if ((ret =  pread64(fd, *buf, buflen, 0)) == -1) {
+			safefree (*buf);
+			continue;
+		} else
+			break;
+	}
 
+	if (ret == -1)
+		DBGFS_FATAL ("unable to read the first block");
+
 	hdr = (ocfs1_vol_disk_hdr *)*buf;
 	if (memcmp(hdr->signature, OCFS1_VOLUME_SIGNATURE,
 		   strlen (OCFS1_VOLUME_SIGNATURE)) == 0) {
 		printf("OCFS1 detected. Use debugocfs.\n");
 		safefree (*buf);
+		ret = -1;
 		goto bail;
 	}
 
@@ -66,10 +75,10 @@
 	 * blocksizes.  4096 is the maximum blocksize because it is
 	 * the minimum clustersize.
 	 */
-	for (bits = 9; bits < 13; bits++) {
+	for (; bits < 13; bits++) {
 		if (!*buf) {
 			buflen = 1 << bits;
-			if (!(*buf = memalign(512, buflen)))
+			if (!(*buf = memalign(buflen, buflen)))
 				DBGFS_FATAL("%s", strerror(errno));
 		}
 
@@ -86,8 +95,10 @@
 		safefree (*buf);
 	}
 
-        if (bits >= 13)
-            printf("Not an OCFS2 volume\n");
+	if (bits >= 13) {
+		printf("Not an OCFS2 volume\n");
+		ret = -1;
+	}
 
 bail:
 	return ret;
@@ -140,7 +151,7 @@
 			add_extent_rec (arr, rec);
 		else {
 			buflen = 1 << gbls.blksz_bits;
-			if (!(buf = memalign(512, buflen)))
+			if (!(buf = memalign(buflen, buflen)))
 				DBGFS_FATAL("%s", strerror(errno));
 
 			off = (__u64)rec->e_blkno << gbls.blksz_bits;
@@ -208,7 +219,7 @@
                 if ((foff + len) > size)
                     len = size - foff;
 
-		if (!(buf = memalign(512, len)))
+		if (!(buf = memalign((1 << gbls.blksz_bits), len)))
 			DBGFS_FATAL("%s", strerror(errno));
 
 		if ((pread64(fd, buf, len, off)) == -1)
@@ -305,7 +316,7 @@
 	arr = g_array_new(0, 1, sizeof(ocfs2_extent_rec));
 
 	buflen = 1 << gbls.blksz_bits;
-	if (!(inode_buf = memalign(512, buflen)))
+	if (!(inode_buf = memalign(buflen, buflen)))
 		DBGFS_FATAL("%s", strerror(errno));
 
 	if ((read_inode (fd, blknum, inode_buf, buflen)) == -1) {
@@ -326,7 +337,7 @@
 		}
 	}
 
-	if (!(newbuf = memalign(512, newlen)))
+	if (!(newbuf = memalign((1 << gbls.blksz_bits), newlen)))
 		DBGFS_FATAL("%s", strerror(errno));
 
 	p = newbuf;
@@ -342,8 +353,8 @@
 		while (len) {
 			buflen = min (newlen, len);
 			/* rndup is reqd because source is read o_direct */
-			rndup = buflen % 512;
-			rndup = (rndup ? 512 - rndup : 0);
+			rndup = buflen % (1 << gbls.blksz_bits);
+			rndup = (rndup ? (1 << gbls.blksz_bits) - rndup : 0);
 			buflen += rndup;
 
 			if ((pread64(fd, p, buflen, off)) == -1)



More information about the Ocfs-tools-commits mailing list