[lvm-devel] [PATCH] save and restore the previous logging level

Takahiro Yasui tyasui at redhat.com
Wed Apr 1 21:13:39 UTC 2009


Hi,

This is a patch to save and restore the previous log suppress
level to handle nested calls correctly.

Regards,
---
Takahiro Yasui
Hitachi Computer Products (America), Inc.


Signed-off-by: Takahiro Yasui <tyasui at redhat.com>
---
 lib/format_text/archiver.c    |    7 ++++---
 lib/format_text/import_vsn1.c |    5 +++--
 lib/snapshot/snapshot.c       |    9 +++++----
 3 files changed, 12 insertions(+), 9 deletions(-)

Index: LVM2.02.46-20090401/lib/format_text/archiver.c
===================================================================
--- LVM2.02.46-20090401.orig/lib/format_text/archiver.c
+++ LVM2.02.46-20090401/lib/format_text/archiver.c
@@ -397,6 +397,7 @@ void check_current_backup(struct volume_
 {
 	char path[PATH_MAX];
 	struct volume_group *vg_backup;
+	int old_suppress;
 
 	if (vg->status & EXPORTED_VG)
 		return;
@@ -407,15 +408,15 @@ void check_current_backup(struct volume_
 		return;
 	}
 
-	log_suppress(1);
+	old_suppress = log_suppress(1);
 	/* Up-to-date backup exists? */
 	if ((vg_backup = backup_read_vg(vg->cmd, vg->name, path)) &&
 	    (vg->seqno == vg_backup->seqno) &&
 	    (id_equal(&vg->id, &vg_backup->id))) {
-		log_suppress(0);
+		log_suppress(old_suppress);
 		return;
 	}
-	log_suppress(0);
+	log_suppress(old_suppress);
 
 	if (vg_backup)
 		archive(vg_backup);
Index: LVM2.02.46-20090401/lib/format_text/import_vsn1.c
===================================================================
--- LVM2.02.46-20090401.orig/lib/format_text/import_vsn1.c
+++ LVM2.02.46-20090401/lib/format_text/import_vsn1.c
@@ -816,10 +816,11 @@ static void _read_desc(struct dm_pool *m
 {
 	const char *d;
 	unsigned int u = 0u;
+	int old_suppress;
 
-	log_suppress(1);
+	old_suppress = log_suppress(1);
 	d = find_config_str(cft->root, "description", "");
-	log_suppress(0);
+	log_suppress(old_suppress);
 	*desc = dm_pool_strdup(mem, d);
 
 	get_config_uint32(cft->root, "creation_time", &u);
Index: LVM2.02.46-20090401/lib/snapshot/snapshot.c
===================================================================
--- LVM2.02.46-20090401.orig/lib/snapshot/snapshot.c
+++ LVM2.02.46-20090401/lib/snapshot/snapshot.c
@@ -37,6 +37,7 @@ static int _snap_text_import(struct lv_s
 	uint32_t chunk_size;
 	const char *org_name, *cow_name;
 	struct logical_volume *org, *cow;
+	int old_suppress;
 
 	seg->lv->status |= SNAPSHOT;
 
@@ -45,21 +46,21 @@ static int _snap_text_import(struct lv_s
 		return 0;
 	}
 
-	log_suppress(1);
+	old_suppress = log_suppress(1);
 
 	if (!(cow_name = find_config_str(sn, "cow_store", NULL))) {
-		log_suppress(0);
+		log_suppress(old_suppress);
 		log_error("Snapshot cow storage not specified.");
 		return 0;
 	}
 
 	if (!(org_name = find_config_str(sn, "origin", NULL))) {
-		log_suppress(0);
+		log_suppress(old_suppress);
 		log_error("Snapshot origin not specified.");
 		return 0;
 	}
 
-	log_suppress(0);
+	log_suppress(old_suppress);
 
 	if (!(cow = find_lv(seg->lv->vg, cow_name))) {
 		log_error("Unknown logical volume specified for "




More information about the lvm-devel mailing list