From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8792 invoked by alias); 17 Nov 2008 18:20:15 -0000 Received: (qmail 8705 invoked by uid 9657); 17 Nov 2008 18:20:15 -0000 Date: Mon, 17 Nov 2008 18:20:00 -0000 Message-ID: <20081117182015.8703.qmail@sourceware.org> From: wysochanski@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW man/lvremove.8.in tools/lvrem ... Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2008-11/txt/msg00045.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: wysochanski@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;