[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