summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2021-02-10 00:40:21 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2021-02-10 15:39:03 +0100
commitf90082ce8f218781ff3b9361e748dbff0ff0e2e3 (patch)
treee7a068fdfe077be39be60453d39ba75ecbe89169
parent289518005834b5844f88ce1f22265df99f7072d0 (diff)
downloadlvm2-f90082ce8f218781ff3b9361e748dbff0ff0e2e3.tar.gz
lvconvert: read-only origin cannot be merged
When user sets snapshost origin as read-only, lvm will not allow simple merge and user needs to flip permission,
-rw-r--r--tools/lvconvert.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index a72126bf4..77afaf487 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -2162,15 +2162,21 @@ static int _lvconvert_merge_old_snapshot(struct cmd_context *cmd,
log_error("Cannot merge snapshot %s into the origin %s "
"with merging snapshot %s.",
display_lvname(lv), display_lvname(origin),
- display_lvname(find_snapshot(origin)->lv));
+ display_lvname(snap_seg->lv));
return 0;
}
- if (lv_is_external_origin(origin_from_cow(lv))) {
+ if (lv_is_external_origin(origin)) {
log_error("Cannot merge snapshot %s into "
"the read-only external origin %s.",
- display_lvname(lv),
- display_lvname(origin_from_cow(lv)));
+ display_lvname(lv), display_lvname(origin));
+ return 0;
+ }
+
+ if (!(origin->status & LVM_WRITE)) {
+ log_error("Cannot merge snapshot %s into "
+ "the read-only origin %s. (Use lvchange -p rw).",
+ display_lvname(lv), display_lvname(origin));
return 0;
}