[Ocfs-tools-commits]
smushran commits r128 - in trunk/ocfs2/debugfs.ocfs2: . include
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Fri Jul 2 15:06:02 CDT 2004
Author: smushran
Date: 2004-07-02 14:06:00 -0500 (Fri, 02 Jul 2004)
New Revision: 128
Modified:
trunk/ocfs2/debugfs.ocfs2/commands.c
trunk/ocfs2/debugfs.ocfs2/dump.c
trunk/ocfs2/debugfs.ocfs2/include/main.h
trunk/ocfs2/debugfs.ocfs2/journal.c
trunk/ocfs2/debugfs.ocfs2/readfs.c
Log:
globals enclosed in a struct
Modified: trunk/ocfs2/debugfs.ocfs2/commands.c
===================================================================
--- trunk/ocfs2/debugfs.ocfs2/commands.c 2004-07-02 02:55:15 UTC (rev 127)
+++ trunk/ocfs2/debugfs.ocfs2/commands.c 2004-07-02 19:06:00 UTC (rev 128)
@@ -70,19 +70,20 @@
extern gboolean allow_write;
-char *device = NULL;
-int dev_fd = -1;
-__u32 blksz_bits = 0;
-__u32 clstrsz_bits = 0;
-__u64 root_blkno = 0;
-__u64 sysdir_blkno = 0;
-__u64 dlm_blkno = 0;
-char *curdir = NULL;
-char *superblk = NULL;
-char *rootin = NULL;
-char *sysdirin = NULL;
+dbgfs_gbls gbls = {
+ .device = NULL,
+ .dev_fd = -1,
+ .blksz_bits = 0,
+ .clstrsz_bits = 0,
+ .root_blkno = 0,
+ .sysdir_blkno = 0,
+ .dlm_blkno = 0,
+ .curdir = NULL,
+ .superblk = NULL,
+ .rootin = NULL,
+ .sysdirin = NULL
+};
-
static Command commands[] =
{
{ "open", do_open },
@@ -172,11 +173,10 @@
static void do_open (char **args)
{
char *dev = args[1];
- ocfs2_dinode *inode;
ocfs2_super_block *sb;
__u32 len;
- if (device)
+ if (gbls.device)
do_close (NULL);
if (dev == NULL) {
@@ -184,46 +184,47 @@
goto bail;
}
- dev_fd = open (dev, allow_write ? O_RDONLY : O_RDWR);
- if (dev_fd == -1) {
+ gbls.dev_fd = open (dev, allow_write ? O_RDONLY : O_RDWR);
+ if (gbls.dev_fd == -1) {
printf ("could not open device %s\n", dev);
goto bail;
}
- device = g_strdup (dev);
+ gbls.device = g_strdup (dev);
- if (read_super_block (dev_fd, &superblk) != -1)
- curdir = g_strdup ("/");
+ if (read_super_block (gbls.dev_fd, (char **)&gbls.superblk) != -1)
+ gbls.curdir = g_strdup ("/");
else {
- close (dev_fd);
- dev_fd = -1;
+ close (gbls.dev_fd);
+ gbls.dev_fd = -1;
goto bail;
}
- inode = (ocfs2_dinode *)superblk;
- sb = &(inode->id2.i_super);
+ sb = &(gbls.superblk->id2.i_super);
/* set globals */
- clstrsz_bits = sb->s_clustersize_bits;
- blksz_bits = sb->s_blocksize_bits;
- root_blkno = sb->s_root_blkno;
- sysdir_blkno = sb->s_system_dir_blkno;
+ gbls.clstrsz_bits = sb->s_clustersize_bits;
+ gbls.blksz_bits = sb->s_blocksize_bits;
+ gbls.root_blkno = sb->s_root_blkno;
+ gbls.sysdir_blkno = sb->s_system_dir_blkno;
/* read root inode */
- len = 1 << blksz_bits;
- if (!(rootin = malloc(len)))
+ len = 1 << gbls.blksz_bits;
+ if (!(gbls.rootin = malloc(len)))
DBGFS_FATAL("%s", strerror(errno));
- if ((pread64(dev_fd, rootin, len, (root_blkno << blksz_bits))) == -1)
+ if ((pread64(gbls.dev_fd, (char *)gbls.rootin, len,
+ (gbls.root_blkno << gbls.blksz_bits))) == -1)
DBGFS_FATAL("%s", strerror(errno));
/* read sysdir inode */
- len = 1 << blksz_bits;
- if (!(sysdirin = malloc(len)))
+ len = 1 << gbls.blksz_bits;
+ if (!(gbls.sysdirin = malloc(len)))
DBGFS_FATAL("%s", strerror(errno));
- if ((pread64(dev_fd, sysdirin, len, (sysdir_blkno << blksz_bits))) == -1)
+ if ((pread64(gbls.dev_fd, (char *)gbls.sysdirin, len,
+ (gbls.sysdir_blkno << gbls.blksz_bits))) == -1)
DBGFS_FATAL("%s", strerror(errno));
/* load sysfiles blknums */
- read_sysdir (dev_fd, sysdirin);
+ read_sysdir (gbls.dev_fd, (char *)gbls.sysdirin);
bail:
return ;
@@ -235,18 +236,18 @@
*/
static void do_close (char **args)
{
- if (device) {
- g_free (device);
- device = NULL;
- close (dev_fd);
- dev_fd = -1;
+ if (gbls.device) {
+ g_free (gbls.device);
+ gbls.device = NULL;
+ close (gbls.dev_fd);
+ gbls.dev_fd = -1;
- g_free (curdir);
- curdir = NULL;
+ g_free (gbls.curdir);
+ gbls.curdir = NULL;
- safefree (superblk);
- safefree (rootin);
- safefree (sysdirin);
+ safefree (gbls.superblk);
+ safefree (gbls.rootin);
+ safefree (gbls.sysdirin);
} else
printf ("device not open\n");
@@ -275,24 +276,24 @@
GArray *dirarr = NULL;
__u32 len;
- if (dev_fd == -1) {
+ if (gbls.dev_fd == -1) {
printf ("device not open\n");
goto bail;
}
- len = 1 << blksz_bits;
+ len = 1 << gbls.blksz_bits;
if (!(buf = malloc(len)))
DBGFS_FATAL("%s", strerror(errno));
if (opts) {
blknum = atoi(opts);
- if ((read_inode (dev_fd, blknum, buf, len)) == -1) {
+ if ((read_inode (gbls.dev_fd, blknum, buf, len)) == -1) {
printf("Not an inode\n");
goto bail;
}
inode = (ocfs2_dinode *)buf;
} else {
- inode = (ocfs2_dinode *)rootin;
+ inode = gbls.rootin;
}
if (!S_ISDIR(inode->i_mode)) {
@@ -302,7 +303,7 @@
dirarr = g_array_new(0, 1, sizeof(struct ocfs2_dir_entry));
- read_dir (dev_fd, &(inode->id2.i_list), inode->i_size, dirarr);
+ read_dir (gbls.dev_fd, &(inode->id2.i_list), inode->i_size, dirarr);
dump_dir_entry (dirarr);
@@ -321,7 +322,7 @@
*/
static void do_pwd (char **args)
{
- printf ("%s\n", curdir ? curdir : "No dir");
+ printf ("%s\n", gbls.curdir ? gbls.curdir : "No dir");
} /* do_pwd */
/*
@@ -416,7 +417,7 @@
*/
static void do_curdev (char **args)
{
- printf ("%s\n", device ? device : "No device");
+ printf ("%s\n", gbls.device ? gbls.device : "No device");
} /* do_curdev */
/*
@@ -438,12 +439,12 @@
ocfs2_dinode *in;
ocfs2_super_block *sb;
- if (dev_fd == -1) {
+ if (gbls.dev_fd == -1) {
printf ("device not open\n");
goto bail;
}
- in = (ocfs2_dinode *)superblk;
+ in = gbls.superblk;
sb = &(in->id2.i_super);
dump_super_block(sb);
@@ -466,24 +467,24 @@
char *buf = NULL;
__u32 buflen;
- if (dev_fd == -1) {
+ if (gbls.dev_fd == -1) {
printf ("device not open\n");
goto bail;
}
- buflen = 1 << blksz_bits;
+ buflen = 1 << gbls.blksz_bits;
if (!(buf = malloc(buflen)))
DBGFS_FATAL("%s", strerror(errno));
if (opts) {
blknum = atoi(opts);
- if ((read_inode (dev_fd, blknum, buf, buflen)) == -1) {
+ if ((read_inode (gbls.dev_fd, blknum, buf, buflen)) == -1) {
printf("Not an inode\n");
goto bail;
}
inode = (ocfs2_dinode *)buf;
} else {
- inode = (ocfs2_dinode *)rootin;
+ inode = gbls.rootin;
}
dump_inode(inode);
@@ -491,7 +492,7 @@
if ((inode->i_flags & OCFS2_LOCAL_ALLOC_FL))
dump_local_alloc(&(inode->id2.i_lab));
else
- traverse_extents(dev_fd, &(inode->id2.i_list), NULL, 1);
+ traverse_extents(gbls.dev_fd, &(inode->id2.i_list), NULL, 1);
bail:
safefree (buf);
@@ -506,10 +507,10 @@
{
char *dlmbuf = NULL;
- if (dev_fd == -1)
+ if (gbls.dev_fd == -1)
printf ("device not open\n");
else {
- if (read_file (dev_fd, dlm_blkno, -1, &dlmbuf) == -1)
+ if (read_file (gbls.dev_fd, gbls.dlm_blkno, -1, &dlmbuf) == -1)
goto bail;
dump_config (dlmbuf);
}
@@ -527,10 +528,10 @@
{
char *dlmbuf = NULL;
- if (dev_fd == -1)
+ if (gbls.dev_fd == -1)
printf ("device not open\n");
else {
- if (read_file (dev_fd, dlm_blkno, -1, &dlmbuf) == -1)
+ if (read_file (gbls.dev_fd, gbls.dlm_blkno, -1, &dlmbuf) == -1)
goto bail;
dump_publish (dlmbuf);
}
@@ -548,10 +549,10 @@
{
char *dlmbuf = NULL;
- if (dev_fd == -1)
+ if (gbls.dev_fd == -1)
printf ("device not open\n");
else {
- if (read_file (dev_fd, dlm_blkno, -1, &dlmbuf) == -1)
+ if (read_file (gbls.dev_fd, gbls.dlm_blkno, -1, &dlmbuf) == -1)
goto bail;
dump_vote (dlmbuf);
}
@@ -573,7 +574,7 @@
int op = 0; /* 0 = dump, 1 = cat */
char *outfile = NULL;
- if (dev_fd == -1) {
+ if (gbls.dev_fd == -1) {
printf ("device not open\n");
goto bail;
}
@@ -599,7 +600,7 @@
}
}
- read_file (dev_fd, blknum, outfd, NULL);
+ read_file (gbls.dev_fd, blknum, outfd, NULL);
bail:
if (outfd > 2)
@@ -623,10 +624,10 @@
if (!blknum)
goto bail;
- if (dev_fd == -1)
+ if (gbls.dev_fd == -1)
printf ("device not open\n");
else {
- if ((len = read_file (dev_fd, blknum, -1, &logbuf)) == -1)
+ if ((len = read_file (gbls.dev_fd, blknum, -1, &logbuf)) == -1)
goto bail;
read_journal (logbuf, (__u64)len);
}
@@ -635,4 +636,3 @@
safefree (logbuf);
return ;
} /* do_journal */
-
Modified: trunk/ocfs2/debugfs.ocfs2/dump.c
===================================================================
--- trunk/ocfs2/debugfs.ocfs2/dump.c 2004-07-02 02:55:15 UTC (rev 127)
+++ trunk/ocfs2/debugfs.ocfs2/dump.c 2004-07-02 19:06:00 UTC (rev 128)
@@ -30,8 +30,7 @@
#include <utils.h>
#include <journal.h>
-extern char *superblk;
-extern __u32 blksz_bits;
+extern dbgfs_gbls gbls;
/*
* dump_super_block()
@@ -186,7 +185,7 @@
*/
void dump_disk_lock (ocfs2_disk_lock *dl)
{
- ocfs2_super_block *sb = &(((ocfs2_dinode *)superblk)->id2.i_super);
+ ocfs2_super_block *sb = &((gbls.superblk)->id2.i_super);
int i, j, k;
__u32 node_map;
@@ -279,7 +278,7 @@
char *p;
ocfs_node_config_hdr *hdr;
ocfs_node_config_info *node;
- ocfs2_super_block *sb = &(((ocfs2_dinode *)superblk)->id2.i_super);
+ ocfs2_super_block *sb = &((gbls.superblk)->id2.i_super);
__u16 port;
char addr[32];
struct in_addr ina;
@@ -295,7 +294,7 @@
printf("%-4s %-32s %-15s %-6s %s\n",
"Node", "Name", "IP Addr", "Port", "UUID");
- p = buf + (2 << blksz_bits);
+ p = buf + (2 << gbls.blksz_bits);
for (i = 0; i < sb->s_max_nodes; ++i) {
node = (ocfs_node_config_info *)p;
if (!*node->node_name)
@@ -310,7 +309,7 @@
for (j = 0; j < OCFS2_GUID_LEN; j++)
printf("%c", node->guid.guid[j]);
printf("\n");
- p += (1 << blksz_bits);
+ p += (1 << gbls.blksz_bits);
}
return ;
@@ -325,14 +324,14 @@
ocfs_publish *pub;
char *p;
GString *pub_flag;
- ocfs2_super_block *sb = &(((ocfs2_dinode *)superblk)->id2.i_super);
+ ocfs2_super_block *sb = &((gbls.superblk)->id2.i_super);
__u32 i, j;
printf("%-2s %-3s %-3s %-3s %-15s %-15s %-15s %-*s %-s\n",
"No", "Mnt", "Vot", "Dty", "LockId", "Seq", "Time", sb->s_max_nodes,
"Map", "Type");
- p = buf + ((2 + 4 + sb->s_max_nodes) << blksz_bits);
+ p = buf + ((2 + 4 + sb->s_max_nodes) << gbls.blksz_bits);
for (i = 0; i < sb->s_max_nodes; ++i) {
pub = (ocfs_publish *)p;
@@ -350,7 +349,7 @@
g_string_free (pub_flag, 1);
- p += (1 << blksz_bits);
+ p += (1 << gbls.blksz_bits);
}
return ;
@@ -365,13 +364,13 @@
ocfs_vote *vote;
char *p;
GString *vote_flag;
- ocfs2_super_block *sb = &(((ocfs2_dinode *)superblk)->id2.i_super);
+ ocfs2_super_block *sb = &((gbls.superblk)->id2.i_super);
__u32 i;
printf("%-2s %-2s %-1s %-15s %-15s %-s\n",
"No", "NV", "O", "LockId", "Seq", "Type");
- p = buf + ((2 + 4 + sb->s_max_nodes + sb->s_max_nodes) << blksz_bits);
+ p = buf + ((2 + 4 + sb->s_max_nodes + sb->s_max_nodes) << gbls.blksz_bits);
for (i = 0; i < sb->s_max_nodes; ++i) {
vote = (ocfs_vote *)p;
@@ -383,7 +382,7 @@
vote->vote_seq_num, vote_flag->str);
g_string_free (vote_flag, 1);
- p += (1 << blksz_bits);
+ p += (1 << gbls.blksz_bits);
}
return ;
Modified: trunk/ocfs2/debugfs.ocfs2/include/main.h
===================================================================
--- trunk/ocfs2/debugfs.ocfs2/include/main.h 2004-07-02 02:55:15 UTC (rev 127)
+++ trunk/ocfs2/debugfs.ocfs2/include/main.h 2004-07-02 19:06:00 UTC (rev 128)
@@ -61,6 +61,20 @@
VOTE
};
+typedef struct _dbgfs_glbs {
+ char *device;
+ int dev_fd;
+ __u32 blksz_bits;
+ __u32 clstrsz_bits;
+ __u64 root_blkno;
+ __u64 sysdir_blkno;
+ __u64 dlm_blkno;
+ char *curdir;
+ ocfs2_dinode *superblk;
+ ocfs2_dinode *rootin;
+ ocfs2_dinode *sysdirin;
+} dbgfs_gbls;
+
#define safefree(_p) do {if (_p) { free(_p); (_p) = NULL; } } while (0)
#define DBGFS_FATAL(fmt, arg...) ({ fprintf(stderr, "ERROR at %s, %d: " fmt ". EXITING!!!\n", \
Modified: trunk/ocfs2/debugfs.ocfs2/journal.c
===================================================================
--- trunk/ocfs2/debugfs.ocfs2/journal.c 2004-07-02 02:55:15 UTC (rev 127)
+++ trunk/ocfs2/debugfs.ocfs2/journal.c 2004-07-02 19:06:00 UTC (rev 128)
@@ -30,7 +30,7 @@
#include <utils.h>
#include <journal.h>
-extern __u32 blksz_bits;
+extern dbgfs_gbls gbls;
/*
* read_journal()
@@ -42,7 +42,7 @@
int blocknum;
journal_header_t *header;
int last_metadata = 0;
- __u32 blksize = 1 << blksz_bits;
+ __u32 blksize = 1 << gbls.blksz_bits;
__u64 len;
char *p;
@@ -209,7 +209,7 @@
case JFS_DESCRIPTOR_BLOCK:
printf("Journal Descriptor\n");
print_header(header, "hdr");
- for(i = sizeof(journal_header_t); i < (1 << blksz_bits);
+ for(i = sizeof(journal_header_t); i < (1 << gbls.blksz_bits);
i+=sizeof(journal_block_tag_t)) {
tag = (journal_block_tag_t *) &blk[i];
printf("\ttag[%d]->t_blocknr:\t\t%u\n", count,
Modified: trunk/ocfs2/debugfs.ocfs2/readfs.c
===================================================================
--- trunk/ocfs2/debugfs.ocfs2/readfs.c 2004-07-02 02:55:15 UTC (rev 127)
+++ trunk/ocfs2/debugfs.ocfs2/readfs.c 2004-07-02 19:06:00 UTC (rev 128)
@@ -30,10 +30,7 @@
#include <utils.h>
#include <journal.h>
-extern __u32 blksz_bits;
-extern __u32 clstrsz_bits;
-extern __u64 dlm_blkno;
-extern char *superblk;
+extern dbgfs_gbls gbls;
/*
* read_super_block()
@@ -105,7 +102,7 @@
ocfs2_dinode *inode;
int ret = 0;
- off = blknum << blksz_bits;
+ off = blknum << gbls.blksz_bits;
if ((pread64(fd, buf, buflen, off)) == -1)
DBGFS_FATAL("%s", strerror(errno));
@@ -141,11 +138,11 @@
if (ext->l_tree_depth == 0)
add_extent_rec (arr, rec);
else {
- buflen = 1 << blksz_bits;
+ buflen = 1 << gbls.blksz_bits;
if (!(buf = malloc(buflen)))
DBGFS_FATAL("%s", strerror(errno));
- off = (__u64)rec->e_blkno << blksz_bits;
+ off = (__u64)rec->e_blkno << gbls.blksz_bits;
if ((pread64 (fd, buf, buflen, off)) == -1)
DBGFS_FATAL("%s", strerror(errno));
@@ -204,9 +201,9 @@
for (i = 0; i < arr->len; ++i) {
rec = &(g_array_index(arr, ocfs2_extent_rec, i));
- off = rec->e_blkno << blksz_bits;
- foff = rec->e_cpos << clstrsz_bits;
- len = rec->e_clusters << clstrsz_bits;
+ off = rec->e_blkno << gbls.blksz_bits;
+ foff = rec->e_cpos << gbls.clstrsz_bits;
+ len = rec->e_clusters << gbls.clstrsz_bits;
if ((foff + len) > size)
len = size - foff;
@@ -253,7 +250,7 @@
for (i = 0; i < dirarr->len; ++i) {
rec = &(g_array_index(dirarr, struct ocfs2_dir_entry, i));
if (!strncmp (rec->name, dlm, strlen(dlm)))
- dlm_blkno = rec->inode;
+ gbls.dlm_blkno = rec->inode;
}
bail:
@@ -284,7 +281,7 @@
arr = g_array_new(0, 1, sizeof(ocfs2_extent_rec));
- buflen = 1 << blksz_bits;
+ buflen = 1 << gbls.blksz_bits;
if (!(inode_buf = malloc(buflen)))
DBGFS_FATAL("%s", strerror(errno));
@@ -313,9 +310,9 @@
for (i = 0; i < arr->len; ++i) {
rec = &(g_array_index(arr, ocfs2_extent_rec, i));
- off = rec->e_blkno << blksz_bits;
- foff = rec->e_cpos << clstrsz_bits;
- len = rec->e_clusters << clstrsz_bits;
+ off = rec->e_blkno << gbls.blksz_bits;
+ foff = rec->e_cpos << gbls.clstrsz_bits;
+ len = rec->e_clusters << gbls.clstrsz_bits;
if ((foff + len) > inode->i_size)
len = inode->i_size - foff;
More information about the Ocfs-tools-commits
mailing list