[lvm-devel] [PATCH] Create backup_changed_vg() liblvm function to avoid clvmd needing vg_read().

Dave Wysochanski dwysocha at redhat.com
Mon Jan 26 19:38:57 UTC 2009


Should be no functional change and should apply cleanly on Petr's patch
13 from 1/22/09:
Date:   Thu Jan 22 11:10:09 2009 +0100
    Remove now-unused vg_lock_and_read.

Move guts of lvm_do_backup() function in clvmd into the library.
This allows us to avoid having clvmd to require linking against
vg_read() symbol.

Signed-off-by: Dave Wysochanski <dwysocha at redhat.com>
---
 daemons/clvmd/lvm-functions.c |   15 +++------------
 lib/format_text/archiver.c    |   17 +++++++++++++++++
 lib/format_text/archiver.h    |    2 ++
 3 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/daemons/clvmd/lvm-functions.c b/daemons/clvmd/lvm-functions.c
index 5cf7eff..b377400 100644
--- a/daemons/clvmd/lvm-functions.c
+++ b/daemons/clvmd/lvm-functions.c
@@ -706,19 +706,10 @@ void init_lvhash()
 /* Backups up the LVM metadata if it's changed */
 void lvm_do_backup(const char *vgname)
 {
-	struct volume_group * vg;
-	int consistent = 0;
+	DEBUGLOG("Triggering backup of VG metadata for %s. suspended=%d\n",
+		 vgname, suspended);
 
-	DEBUGLOG("Triggering backup of VG metadata for %s. suspended=%d\n", vgname, suspended);
-
-	vg = vg_read_internal(cmd, vgname, NULL /*vgid*/, &consistent);
-	if (vg) {
-		if (consistent)
-			check_current_backup(vg);
-	}
-	else {
-		log_error("Error backing up metadata, can't find VG for group %s", vgname);
-	}
+	backup_changed_vg(cmd, vgname);
 }
 
 /* Called to initialise the LVM context of the daemon */
diff --git a/lib/format_text/archiver.c b/lib/format_text/archiver.c
index 9234e2e..8afc0a0 100644
--- a/lib/format_text/archiver.c
+++ b/lib/format_text/archiver.c
@@ -414,3 +414,20 @@ void check_current_backup(struct volume_group *vg)
 	archive(vg);
 	backup(vg);
 }
+
+/* Backups up the LVM metadata if it's changed */
+void backup_changed_vg(struct cmd_context *cmd, const char *vgname)
+{
+	struct volume_group * vg;
+	int consistent = 0;
+
+	vg = vg_read_internal(cmd, vgname, NULL /*vgid*/, &consistent);
+	if (vg) {
+		if (consistent)
+			check_current_backup(vg);
+	}
+	else {
+		log_error("Error backing up metadata, can't find VG for group %s", vgname);
+	}
+}
+
diff --git a/lib/format_text/archiver.h b/lib/format_text/archiver.h
index eb58ae9..1ac33ac 100644
--- a/lib/format_text/archiver.h
+++ b/lib/format_text/archiver.h
@@ -59,4 +59,6 @@ int backup_to_file(const char *file, const char *desc, struct volume_group *vg);
 
 void check_current_backup(struct volume_group *vg);
 
+void backup_changed_vg(struct cmd_context *cmd, const char *vgname);
+
 #endif
-- 
1.5.5.1




More information about the lvm-devel mailing list