[lvm-devel] LVM2 ./WHATS_NEW man/lvremove.8.in tools/lvrem ...
wysochanski at sourceware.org
wysochanski at sourceware.org
Mon Nov 17 18:20:15 UTC 2008
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: wysochanski at sourceware.org 2008-11-17 18:20:14
Modified files:
. : WHATS_NEW
man : lvremove.8.in
tools : lvremove.c
Log message:
Fix "lvremove -f vgname" when vgname contains snapshots.
Prior to this patch, "lvremove -f vgname" would fail if vgname contained
one or more snapshot LVs. Now this passes, but has a side-effect.
If you issue "lvremove vgname" where vgname contains one or more snaps,
you will get an extra "y/n" prompt to remove the same snapshot.
Example:
$ lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lvsnap vgtest swi-a- 16.00M lvtest 0.05
lvtest vgtest owi-a- 64.00M
$ lvremove vgtest
Do you really want to remove active logical volume "lvsnap"? [y/n]: n
Logical volume "lvsnap" not removed
Do you really want to remove active logical volume "lvsnap"? [y/n]: n
Logical volume "lvsnap" not removed
Command failed with status code 5.
Fixing this will most likely require modification of the iterator
function, process_each_lvs_in_vg() to iterate over snaps in some
cases (e.g. lvs, vgdisplay -v) but not in others (lvremove).
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.995&r2=1.996
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/man/lvremove.8.in.diff?cvsroot=lvm2&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/lvremove.c.diff?cvsroot=lvm2&r1=1.55&r2=1.56
--- LVM2/WHATS_NEW 2008/11/12 15:01:35 1.995
+++ LVM2/WHATS_NEW 2008/11/17 18:20:13 1.996
@@ -1,5 +1,6 @@
Version 2.02.43 - 10th November 2008
====================================
+ Cope with snapshot dependencies when removing a whole VG with lvremove.
Make man pages consistent with either-or options (use "|" everywhere).
Merge device-mapper into the lvm2 tree.
Correct prototype for --permission on lvchange and lvcreate man pages.
--- LVM2/man/lvremove.8.in 2008/11/12 15:01:36 1.2
+++ LVM2/man/lvremove.8.in 2008/11/17 18:20:13 1.3
@@ -12,6 +12,7 @@
Confirmation will be requested before deactivating any active logical
volume prior to removal. Logical volumes cannot be deactivated
or removed while they are open (e.g. if they contain a mounted filesystem).
+Removing an origin logical volume will also remove all dependent snapshots.
.sp
If the logical volume is clustered then it must be deactivated on all
nodes in the cluster before it can be removed. A single lvchange command
--- LVM2/tools/lvremove.c 2008/09/19 06:42:00 1.55
+++ LVM2/tools/lvremove.c 2008/11/17 18:20:14 1.56
@@ -18,7 +18,7 @@
static int lvremove_single(struct cmd_context *cmd, struct logical_volume *lv,
void *handle __attribute((unused)))
{
- if (!lv_remove_single(cmd, lv, arg_count(cmd, force_ARG)))
+ if (!lv_remove_with_dependencies(cmd, lv, arg_count(cmd, force_ARG)))
return ECMD_FAILED;
return ECMD_PROCESSED;
More information about the lvm-devel
mailing list