diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2021-02-10 00:40:21 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2021-02-10 15:39:03 +0100 |
commit | f90082ce8f218781ff3b9361e748dbff0ff0e2e3 (patch) | |
tree | e7a068fdfe077be39be60453d39ba75ecbe89169 | |
parent | 289518005834b5844f88ce1f22265df99f7072d0 (diff) | |
download | lvm2-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.c | 14 |
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; } |