[lvm-devel] master - raid: fix activation order
Zdenek Kabelac
zkabelac at fedoraproject.org
Mon Nov 10 21:06:08 UTC 2014
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=62c7027a7c675dfef8f772b1e20ac18705b847a9
Commit: 62c7027a7c675dfef8f772b1e20ac18705b847a9
Parent: 32e4af6479689c4e25ecd273368d22136c93a75d
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Mon Nov 10 22:04:44 2014 +0100
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Mon Nov 10 22:05:48 2014 +0100
raid: fix activation order
Cannot 'activate' volumes in suspend state and we need to use
lock holding LV for suspend/resume.
---
lib/metadata/raid_manip.c | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/lib/metadata/raid_manip.c b/lib/metadata/raid_manip.c
index 5237dc9..5eab551 100644
--- a/lib/metadata/raid_manip.c
+++ b/lib/metadata/raid_manip.c
@@ -1136,7 +1136,7 @@ int lv_raid_split(struct logical_volume *lv, const char *split_name,
return 0;
}
- if (!suspend_lv(cmd, lv)) {
+ if (!suspend_lv(cmd, lv_lock_holder(lv))) {
log_error("Failed to suspend %s/%s before committing changes",
lv->vg->name, lv->name);
vg_revert(lv->vg);
@@ -1149,6 +1149,12 @@ int lv_raid_split(struct logical_volume *lv, const char *split_name,
return 0;
}
+ if (!resume_lv(lv->vg->cmd, lv_lock_holder(lv))) {
+ log_error("Failed to resume %s/%s after committing changes",
+ lv->vg->name, lv->name);
+ return 0;
+ }
+
/*
* First activate the newly split LV and LVs on the removal list.
* This is necessary so that there are no name collisions due to
@@ -1162,11 +1168,6 @@ int lv_raid_split(struct logical_volume *lv, const char *split_name,
if (!activate_lv_excl_local(cmd, lvl->lv))
return_0;
- if (!resume_lv(lv->vg->cmd, lv)) {
- log_error("Failed to resume %s/%s after committing changes",
- lv->vg->name, lv->name);
- return 0;
- }
/*
* Eliminate the residual LVs
More information about the lvm-devel
mailing list