summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Wysochanski <dwysocha@redhat.com>2007-06-19 04:36:12 +0000
committerDave Wysochanski <dwysocha@redhat.com>2007-06-19 04:36:12 +0000
commitd6b1de30fe3f4ca1704b37215f61a32fb2a6b1b0 (patch)
treee31a17aa5330f431aad5b80c531f3460dba30fce
parent69483a8aaf43976845b20bfa4d2f0ed3bb362586 (diff)
downloadlvm2-d6b1de30fe3f4ca1704b37215f61a32fb2a6b1b0.tar.gz
lvm2-d6b1de30fe3f4ca1704b37215f61a32fb2a6b1b0.tar.xz
lvm2-d6b1de30fe3f4ca1704b37215f61a32fb2a6b1b0.zip
Convert vg->status checks to use vg_check_status function.\nRename status_flags to status in vg_check_status.
-rw-r--r--lib/metadata/metadata.c12
-rw-r--r--lib/metadata/metadata.h2
-rw-r--r--tools/lvremove.c6
-rw-r--r--tools/polldaemon.c4
-rw-r--r--tools/toollib.c4
-rw-r--r--tools/vgck.c4
-rw-r--r--tools/vgconvert.c9
-rw-r--r--tools/vgdisplay.c3
-rw-r--r--tools/vgexport.c8
-rw-r--r--tools/vgreduce.c16
-rw-r--r--tools/vgremove.c6
11 files changed, 18 insertions, 56 deletions
diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index d08752c9..66556380 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -1744,33 +1744,33 @@ int pv_analyze(struct cmd_context *cmd, const char *pv_name,
/**
* vg_check_status - check volume group status flags and log error
* @vg - volume group to check status flags
- * @status_flags - specific status flags to check (e.g. EXPORTED_VG)
+ * @status - specific status flags to check (e.g. EXPORTED_VG)
*
* Returns:
* 0 - fail
* 1 - success
*/
-int vg_check_status(struct volume_group *vg, uint32_t status_flags)
+int vg_check_status(struct volume_group *vg, uint32_t status)
{
- if ((status_flags & CLUSTERED) &&
+ if ((status & CLUSTERED) &&
(vg->status & CLUSTERED) && !locking_is_clustered() &&
!lockingfailed()) {
log_error("Skipping clustered volume group %s", vg->name);
return 0;
}
- if ((status_flags & EXPORTED_VG) &&
+ if ((status & EXPORTED_VG) &&
(vg->status & EXPORTED_VG)) {
log_error("Volume group %s is exported", vg->name);
return 0;
}
- if ((status_flags & LVM_WRITE) &&
+ if ((status & LVM_WRITE) &&
!(vg->status & LVM_WRITE)) {
log_error("Volume group %s is read-only", vg->name);
return 0;
}
- if ((status_flags & RESIZEABLE_VG) &&
+ if ((status & RESIZEABLE_VG) &&
!(vg->status & RESIZEABLE_VG)) {
log_error("Volume group %s is not resizeable.", vg->name);
return 0;
diff --git a/lib/metadata/metadata.h b/lib/metadata/metadata.h
index f2751230..c6e2014d 100644
--- a/lib/metadata/metadata.h
+++ b/lib/metadata/metadata.h
@@ -580,7 +580,7 @@ int vg_add_snapshot(struct format_instance *fid, const char *name,
int vg_remove_snapshot(struct logical_volume *cow);
-int vg_check_status(struct volume_group *vg, uint32_t status_flags);
+int vg_check_status(struct volume_group *vg, uint32_t status);
/*
* Mirroring functions
diff --git a/tools/lvremove.c b/tools/lvremove.c
index 272fabc8..7cf1c615 100644
--- a/tools/lvremove.c
+++ b/tools/lvremove.c
@@ -24,10 +24,8 @@ static int lvremove_single(struct cmd_context *cmd, struct logical_volume *lv,
vg = lv->vg;
- if (!(vg->status & LVM_WRITE)) {
- log_error("Volume group \"%s\" is read-only", vg->name);
+ if (!vg_check_status(vg, LVM_WRITE))
return ECMD_FAILED;
- }
if (lv_is_origin(lv)) {
log_error("Can't remove logical volume \"%s\" under snapshot",
@@ -77,7 +75,7 @@ static int lvremove_single(struct cmd_context *cmd, struct logical_volume *lv,
/* If the VG is clustered then make sure no-one else is using the LV
we are about to remove */
- if (vg->status & CLUSTERED) {
+ if (vg_status(vg) & CLUSTERED) {
if (!activate_lv_excl(cmd, lv)) {
log_error("Can't get exclusive access to volume \"%s\"",
lv->name);
diff --git a/tools/polldaemon.c b/tools/polldaemon.c
index a784cb8f..06b0feb7 100644
--- a/tools/polldaemon.c
+++ b/tools/polldaemon.c
@@ -191,10 +191,8 @@ static int _poll_vg(struct cmd_context *cmd, const char *vgname,
return ECMD_FAILED;
}
- if (vg->status & EXPORTED_VG) {
- log_error("Volume group \"%s\" is exported", vg->name);
+ if (!vg_check_status(vg, EXPORTED_VG))
return ECMD_FAILED;
- }
list_iterate_items(lvl, &vg->lvs) {
lv_mirr = lvl->lv;
diff --git a/tools/toollib.c b/tools/toollib.c
index bbf3c412..6234a337 100644
--- a/tools/toollib.c
+++ b/tools/toollib.c
@@ -159,10 +159,8 @@ int process_each_lv_in_vg(struct cmd_context *cmd, struct volume_group *vg,
struct lv_list *lvl;
- if (vg->status & EXPORTED_VG) {
- log_error("Volume group \"%s\" is exported", vg->name);
+ if (!vg_check_status(vg, EXPORTED_VG))
return ECMD_FAILED;
- }
if (tags && !list_empty(tags))
tags_supplied = 1;
diff --git a/tools/vgck.c b/tools/vgck.c
index 42cd216d..1a3c03d9 100644
--- a/tools/vgck.c
+++ b/tools/vgck.c
@@ -30,10 +30,8 @@ static int vgck_single(struct cmd_context *cmd __attribute((unused)),
return ECMD_FAILED;
}
- if (vg->status & EXPORTED_VG) {
- log_error("Volume group \"%s\" is exported", vg_name);
+ if (!vg_check_status(vg, EXPORTED_VG))
return ECMD_FAILED;
- }
return ECMD_PROCESSED;
}
diff --git a/tools/vgconvert.c b/tools/vgconvert.c
index c01214d9..d947d109 100644
--- a/tools/vgconvert.c
+++ b/tools/vgconvert.c
@@ -45,15 +45,8 @@ static int vgconvert_single(struct cmd_context *cmd, const char *vg_name,
return ECMD_FAILED;
}
- if (!(vg->status & LVM_WRITE)) {
- log_error("Volume group \"%s\" is read-only", vg->name);
+ if (!vg_check_status(vg, LVM_WRITE | EXPORTED_VG))
return ECMD_FAILED;
- }
-
- if (vg->status & EXPORTED_VG) {
- log_error("Volume group \"%s\" is exported", vg_name);
- return ECMD_FAILED;
- }
if (vg->fid->fmt == cmd->fmt) {
log_error("Volume group \"%s\" already uses format %s",
diff --git a/tools/vgdisplay.c b/tools/vgdisplay.c
index 52390737..aa02129f 100644
--- a/tools/vgdisplay.c
+++ b/tools/vgdisplay.c
@@ -28,8 +28,7 @@ static int vgdisplay_single(struct cmd_context *cmd, const char *vg_name,
if (!consistent)
log_error("WARNING: Volume group \"%s\" inconsistent", vg_name);
- if (vg->status & EXPORTED_VG)
- log_print("WARNING: volume group \"%s\" is exported", vg_name);
+ vg_check_status(vg, EXPORTED_VG);
if (arg_count(cmd, colon_ARG)) {
vgdisplay_colons(vg);
diff --git a/tools/vgexport.c b/tools/vgexport.c
index b1c498a1..ecdebd71 100644
--- a/tools/vgexport.c
+++ b/tools/vgexport.c
@@ -33,13 +33,7 @@ static int vgexport_single(struct cmd_context *cmd __attribute((unused)),
goto error;
}
- if (vg->status & EXPORTED_VG) {
- log_error("Volume group \"%s\" is already exported", vg_name);
- goto error;
- }
-
- if (!(vg->status & LVM_WRITE)) {
- log_error("Volume group \"%s\" is read-only", vg_name);
+ if (!vg_check_status(vg, EXPORTED_VG | LVM_WRITE)) {
goto error;
}
diff --git a/tools/vgreduce.c b/tools/vgreduce.c
index 4c7e7f1a..16120fcd 100644
--- a/tools/vgreduce.c
+++ b/tools/vgreduce.c
@@ -532,21 +532,7 @@ int vgreduce(struct cmd_context *cmd, int argc, char **argv)
log_print("Wrote out consistent volume group %s", vg_name);
} else {
- if (vg->status & EXPORTED_VG) {
- log_error("Volume group \"%s\" is exported", vg->name);
- unlock_vg(cmd, vg_name);
- return ECMD_FAILED;
- }
-
- if (!(vg->status & LVM_WRITE)) {
- log_error("Volume group \"%s\" is read-only", vg_name);
- unlock_vg(cmd, vg_name);
- return ECMD_FAILED;
- }
-
- if (!(vg->status & RESIZEABLE_VG)) {
- log_error("Volume group \"%s\" is not reducible",
- vg_name);
+ if (!vg_check_status(vg, EXPORTED_VG | LVM_WRITE | RESIZEABLE_VG)) {
unlock_vg(cmd, vg_name);
return ECMD_FAILED;
}
diff --git a/tools/vgremove.c b/tools/vgremove.c
index 142ab962..419e6e3c 100644
--- a/tools/vgremove.c
+++ b/tools/vgremove.c
@@ -23,7 +23,7 @@ static int vgremove_single(struct cmd_context *cmd, const char *vg_name,
struct pv_list *pvl;
int ret = ECMD_PROCESSED;
- if (!vg || !consistent || (vg->status & PARTIAL_VG)) {
+ if (!vg || !consistent || (vg_status(vg) & PARTIAL_VG)) {
log_error("Volume group \"%s\" not found or inconsistent.",
vg_name);
log_error("Consider vgreduce --removemissing if metadata "
@@ -31,10 +31,8 @@ static int vgremove_single(struct cmd_context *cmd, const char *vg_name,
return ECMD_FAILED;
}
- if (vg->status & EXPORTED_VG) {
- log_error("Volume group \"%s\" is exported", vg->name);
+ if (!vg_check_status(vg, EXPORTED_VG))
return ECMD_FAILED;
- }
if (vg->lv_count) {
log_error("Volume group \"%s\" still contains %d "