[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Cluster-devel] [PATCH 3/6] 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("\n");
 				prevcount = 0;
 			}
-			print_fsck_log(MSG_DEBUG, caller, fline,
-				       _("%s inode found at block "
-					 "(0x%llx): marking as '%s'\n"),
-				       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'\n"), 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("\n");
 				prevcount = 0;
 			}
-			print_fsck_log(MSG_DEBUG, caller, fline,
-				       _("inode (0x%llx) references "
-					 "%s block (0x%llx): "
-					 "marking as '%s'\n"),
-				       (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'\n"),
+			       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("\n");
 				prevcount = 0;
 			}
-			print_fsck_log(MSG_DEBUG, caller, fline,
-				       _("inode (0x%llx) references "
-					 "%s block (0x%llx): "
-					 "marking as '%s'\n"),
-				       (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'\n"),
+			       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()\n", __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()\n", __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\n");
-		log_debug("Header magic: %X Header Type: %X\n",
+		log_crit("Header magic: %X Header Type: %X\n",
 				  sb->sb_header.mh_magic,
 				  sb->sb_header.mh_type);
 		return -EINVAL;
-- 
1.7.4.4


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]