diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2021-03-14 13:18:45 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2021-03-15 11:11:35 +0100 |
commit | 5edb353062b26bbe93002717d77aa5d1707f1f70 (patch) | |
tree | ae52cfc078fb15b9e5e600cc527fe9d3affeeb51 /lib/metadata/lv_manip.c | |
parent | 0a2d7c57a1120045e1a93a63bc568dc1e3dbb734 (diff) | |
download | lvm2-5edb353062b26bbe93002717d77aa5d1707f1f70.tar.gz |
lvremove: use to_remove for snapshot removal
Reuse similar 'acceleration' as used for dependent volumes also
for snapshot - so when origin is being removed with all thick
snapshots, don't bother with individual 'COW' detachments
and write&commits, and when possible handle this all within
a single commit.
Diffstat (limited to 'lib/metadata/lv_manip.c')
-rw-r--r-- | lib/metadata/lv_manip.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index 1d341eea2..6fc7afbac 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -6823,13 +6823,10 @@ static int _lv_remove_segs_using_this_lv(struct cmd_context *cmd, struct logical yes_no_prompt("Removing %s \"%s\" will remove %u dependent volume(s). " "Proceed? [y/n]: ", lv_type, lv->name, dm_list_size(&lv->segs_using_this_lv)) == 'n') { - log_error("Logical volume \"%s\" not removed.", lv->name); - return 0; - } - - /* Make aware users of this LV, it's going to be removed, so they - * can skip any updates of itself */ - lv->to_remove = 1; + lv->to_remove = 0; + log_error("Logical volume \"%s\" not removed.", lv->name); + return 0; + } /* * Not using _safe iterator here - since we may delete whole subtree @@ -6859,6 +6856,10 @@ int lv_remove_with_dependencies(struct cmd_context *cmd, struct logical_volume * struct lv_list *lvl; struct logical_volume *origin; + /* Make aware users of this LV, it's going to be removed, so they + * can skip any updates of itself */ + lv->to_remove = 1; + if (!level && lv_is_cow(lv)) { /* * A merging snapshot cannot be removed directly unless |