FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Cluster Development

 
 
LinkBack Thread Tools
 
Old 11-30-2011, 02:04 PM
Steven Whitehouse
 
Default libgfs2: Prepare to remove log_xxx() macros from library

This will need to be done in stages. The first stage is to
clean up what is there. There are calls to the log_ functions
in the library itself, and those will need to be removed
in later patches.

This patch moves the gfs2_options structure into the two
utils which actually require it, removes the print_fsck_log
function, replacing the 3 calls to it from fsck with
the equivalent printf functions - it looks like those could
be merged in future as they all look very similar.

The log_ macros are also updated, so that they will do excatly
the same as before, but now don't depend on any code in libgfs2
itself.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
---
gfs2/convert/gfs2_convert.c | 7 +++++++
gfs2/fsck/fsck.h | 7 +++++++
gfs2/fsck/metawalk.c | 40 ++++++++++++++++++----------------------
gfs2/fsck/util.h | 1 +
gfs2/libgfs2/gfs2_log.c | 34 ----------------------------------
gfs2/libgfs2/libgfs2.h | 29 +++++++++--------------------
gfs2/libgfs2/super.c | 2 +-
7 files changed, 43 insertions(+), 77 deletions(-)

diff --git a/gfs2/convert/gfs2_convert.c b/gfs2/convert/gfs2_convert.c
index 9f24137..09a689c 100644
--- a/gfs2/convert/gfs2_convert.c
+++ b/gfs2/convert/gfs2_convert.c
@@ -139,6 +139,13 @@ struct blocklist {
char *ptrbuf;
};

+struct gfs2_options {
+ char *device;
+ unsigned int yes:1;
+ unsigned int no:1;
+ unsigned int query:1;
+};
+
struct gfs1_sb raw_gfs1_ondisk_sb;
struct gfs2_sbd sb2;
char device[256];
diff --git a/gfs2/fsck/fsck.h b/gfs2/fsck/fsck.h
index edd73d7..70fc3d7 100644
--- a/gfs2/fsck/fsck.h
+++ b/gfs2/fsck/fsck.h
@@ -124,6 +124,13 @@ extern void dirtree_delete(struct dir_info *b);
* of pass1 and put somewhere else... */
struct dir_info *dirtree_insert(uint64_t dblock);

+struct gfs2_options {
+ char *device;
+ unsigned int yes:1;
+ unsigned int no:1;
+ unsigned int query:1;
+};
+
extern struct gfs2_options opts;
extern struct gfs2_inode *lf_dip; /* Lost and found directory inode */
extern struct gfs2_bmap *bl;
diff --git a/gfs2/fsck/metawalk.c b/gfs2/fsck/metawalk.c
index ef7f05d..d78df72 100644
--- a/gfs2/fsck/metawalk.c
+++ b/gfs2/fsck/metawalk.c
@@ -129,38 +129,34 @@ int _fsck_blockmap_set(struct gfs2_inode *ip, uint64_t bblock,
log_info("
");
prevcount = 0;
}
- print_fsck_log(MSG_DEBUG, caller, fline,
- _("%s inode found at block "
- "(0x%llx): marking as '%s'
"),
- btype, (unsigned long long)
- ip->i_di.di_num.no_addr,
- block_type_string(mark));
+ printf( _("(%s:%d) %s inode found at block "
+ "(0x%llx): marking as '%s'
"), caller, fline,
+ btype,
+ (unsigned long long)ip->i_di.di_num.no_addr,
+ block_type_string(mark));
+
} else if (mark == gfs2_bad_block || mark == gfs2_meta_inval) {
if (prevcount) {
log_info("
");
prevcount = 0;
}
- print_fsck_log(MSG_DEBUG, caller, fline,
- _("inode (0x%llx) references "
- "%s block (0x%llx): "
- "marking as '%s'
"),
- (unsigned long long)
- ip->i_di.di_num.no_addr,
- btype, (unsigned long long)bblock,
- block_type_string(mark));
+ printf( _("(%s:%d) inode (0x%llx) references %s block"
+ " (0x%llx): marking as '%s'
"),
+ caller, fline,
+ (unsigned long long)ip->i_di.di_num.no_addr,
+ btype, (unsigned long long)bblock,
+ block_type_string(mark));
} else {
if (prevcount) {
log_info("
");
prevcount = 0;
}
- print_fsck_log(MSG_DEBUG, caller, fline,
- _("inode (0x%llx) references "
- "%s block (0x%llx): "
- "marking as '%s'
"),
- (unsigned long long)
- ip->i_di.di_num.no_addr, btype,
- (unsigned long long)bblock,
- block_type_string(mark));
+ printf( _("(%s:%d) inode (0x%llx) references %s block"
+ " (0x%llx): marking as '%s'
"),
+ caller, fline,
+ (unsigned long long)ip->i_di.di_num.no_addr,
+ btype, (unsigned long long)bblock,
+ block_type_string(mark));
}
prev_ino_addr = ip->i_di.di_num.no_addr;
prev_mark = mark;
diff --git a/gfs2/fsck/util.h b/gfs2/fsck/util.h
index 6de61e2..80ed0c4 100644
--- a/gfs2/fsck/util.h
+++ b/gfs2/fsck/util.h
@@ -184,5 +184,6 @@ extern char generic_interrupt(const char *caller, const char *where,
const char *progress, const char *question,
const char *answers);
extern char gfs2_getch(void);
+#define stack log_debug("<backtrace> - %s()
", __func__)

#endif /* __UTIL_H__ */
diff --git a/gfs2/libgfs2/gfs2_log.c b/gfs2/libgfs2/gfs2_log.c
index a1ceaeb..da5f489 100644
--- a/gfs2/libgfs2/gfs2_log.c
+++ b/gfs2/libgfs2/gfs2_log.c
@@ -22,37 +22,3 @@ void decrease_verbosity(void)
{
print_level--;
}
-
-static __attribute__((format (printf, 4, 0)))
-void print_msg(int priority, const char *file, int line,
- const char *format, va_list args) {
-
- switch (priority) {
-
- case MSG_DEBUG:
- printf("(%s:%d) ", file, line);
- vprintf(format, args);
- break;
- case MSG_INFO:
- case MSG_NOTICE:
- case MSG_WARN:
- vprintf(format, args);
- fflush(NULL);
- break;
- case MSG_ERROR:
- case MSG_CRITICAL:
- default:
- vfprintf(stderr, format, args);
- break;
- }
-}
-
-
-void print_fsck_log(int priority, const char *file, int line,
- const char *format, ...)
-{
- va_list args;
- va_start(args, format);
- print_msg(priority, file, line, format, args);
- va_end(args);
-}
diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h
index d02d63e..04169bf 100644
--- a/gfs2/libgfs2/libgfs2.h
+++ b/gfs2/libgfs2/libgfs2.h
@@ -617,12 +617,6 @@ extern void gfs_put_leaf_nr(struct gfs2_inode *dip, uint32_t inx,
uint64_t leaf_out);

/* gfs2_log.c */
-struct gfs2_options {
- char *device;
- unsigned int yes:1;
- unsigned int no:1;
- unsigned int query:1;
-};

extern int print_level;

@@ -634,33 +628,28 @@ extern int print_level;
#define MSG_CRITICAL 2
#define MSG_NULL 1

-#define print_log(priority, format...)
- do { print_fsck_log(priority, __FUNCTION__, __LINE__, ## format); } while(0)
-
#define log_debug(format...)
- do { if(print_level >= MSG_DEBUG) print_log(MSG_DEBUG, format); } while(0)
+ do { if (print_level >= MSG_DEBUG) {
+ printf("(%s:%d) ", __FUNCTION__, __LINE__);
+ printf(format); } } while(0)
+
#define log_info(format...)
- do { if(print_level >= MSG_INFO) print_log(MSG_INFO, format); } while(0)
+ do { if (print_level >= MSG_INFO) printf(format); } while(0)

#define log_notice(format...)
- do { if(print_level >= MSG_NOTICE) print_log(MSG_NOTICE, format); } while(0)
+ do { if (print_level >= MSG_NOTICE) printf(format); } while(0)

#define log_warn(format...)
- do { if(print_level >= MSG_WARN) print_log(MSG_WARN, format); } while(0)
+ do { if (print_level >= MSG_WARN) printf(format); } while(0)

#define log_err(format...)
- do { if(print_level >= MSG_ERROR) print_log(MSG_ERROR, format); } while(0)
+ do { if (print_level >= MSG_ERROR) fprintf(stderr, format); } while(0)

#define log_crit(format...)
- do { if(print_level >= MSG_CRITICAL) print_log(MSG_CRITICAL, format); } while(0)
-
-#define stack log_debug("<backtrace> - %s()
", __func__)
+ do { if (print_level >= MSG_CRITICAL) fprintf(stderr, format); } while(0)

extern void increase_verbosity(void);
extern void decrease_verbosity(void);
-extern void print_fsck_log(int priority, const char *file, int line,
- const char *format, ...)
- __attribute__((format(printf,4,5)));
/* misc.c */

extern int compute_heightsize(struct gfs2_sbd *sdp, uint64_t *heightsize,
diff --git a/gfs2/libgfs2/super.c b/gfs2/libgfs2/super.c
index c844287..2f544ab 100644
--- a/gfs2/libgfs2/super.c
+++ b/gfs2/libgfs2/super.c
@@ -28,7 +28,7 @@ int check_sb(struct gfs2_sb *sb, int allow_gfs)
sb->sb_header.mh_type != GFS2_METATYPE_SB) {
log_crit("Either the super block is corrupted, or this "
"is not a GFS2 filesystem
");
- log_debug("Header magic: %X Header Type: %X
",
+ log_crit("Header magic: %X Header Type: %X
",
sb->sb_header.mh_magic,
sb->sb_header.mh_type);
return -EINVAL;
--
1.7.4.4
 

Thread Tools




All times are GMT. The time now is 03:14 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org