From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19089 invoked by alias); 29 Sep 2009 15:17:55 -0000 Received: (qmail 19074 invoked by uid 9664); 29 Sep 2009 15:17:54 -0000 Date: Tue, 29 Sep 2009 15:17:00 -0000 Message-ID: <20090929151754.19072.qmail@sourceware.org> From: mbroz@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW lib/activate/activate.c 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: 2009-09/txt/msg00083.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: mbroz@sourceware.org 2009-09-29 15:17:54 Modified files: . : WHATS_NEW lib/activate : activate.c Log message: Return fail if lv_deactivate did not removed device from kernel. lv_deactivate now returns always success, because tree deactivation functions (see dm_tree_deactivate_children) always returns success. Because code should return failure in lv_deactivate at least, fix it by checking for device existence after real deactivation call. (After discussion this was prefered solution to dm tree function rewrite which affects snapshots and mirrors.) Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1277&r2=1.1278 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/activate/activate.c.diff?cvsroot=lvm2&r1=1.153&r2=1.154 --- LVM2/WHATS_NEW 2009/09/28 21:23:02 1.1277 +++ LVM2/WHATS_NEW 2009/09/29 15:17:54 1.1278 @@ -1,5 +1,6 @@ Version 2.02.54 - ===================================== + Return fail if lv_deactivate fails to remove device from kernel. Provide alternative implementation of obsolete siginterrupt(). Consolidate LV allocation into alloc_lv(). Treat input units of both 's' and 'S' as 512-byte sectors. (2.02.49) --- LVM2/lib/activate/activate.c 2009/06/01 12:43:32 1.153 +++ LVM2/lib/activate/activate.c 2009/09/29 15:17:54 1.154 @@ -1017,6 +1017,8 @@ memlock_dec(); fs_unlock(); + if (!lv_info(cmd, lv, &info, 1, 0) || info.exists) + r = 0; out: if (lv) vg_release(lv->vg);