From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25874 invoked by alias); 20 Jul 2006 20:37:13 -0000 Received: (qmail 25854 invoked by uid 9447); 20 Jul 2006 20:37:11 -0000 Date: Thu, 20 Jul 2006 20:37:00 -0000 Message-ID: <20060720203711.25852.qmail@sourceware.org> From: agk@sourceware.org To: lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW lib/metadata/mirror.c Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2006-07/txt/msg00011.txt.bz2 List-Id: CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: agk@sourceware.org 2006-07-20 20:37:10 Modified files: . : WHATS_NEW lib/metadata : mirror.c Log message: Fix locking for mimage removal. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.412&r2=1.413 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/mirror.c.diff?cvsroot=lvm2&r1=1.30&r2=1.31 --- LVM2/WHATS_NEW 2006/07/19 18:55:58 1.412 +++ LVM2/WHATS_NEW 2006/07/20 20:37:09 1.413 @@ -1,5 +1,6 @@ Version 2.02.08 - ================================ + Fix locking for mimage removal. Fix clvmd_init_rhel4 'status' exit code. Version 2.02.07 - 17th July 2006 --- LVM2/lib/metadata/mirror.c 2006/05/12 19:47:40 1.30 +++ LVM2/lib/metadata/mirror.c 2006/07/20 20:37:10 1.31 @@ -199,6 +199,12 @@ /* Delete the 'orphan' LVs */ for (m = num_mirrors; m < old_area_count; m++) { + /* LV is now independent of the mirror so must acquire lock. */ + if (!activate_lv(mirrored_seg->lv->vg->cmd, seg_lv(mirrored_seg, m))) { + stack; + return 0; + } + if (!deactivate_lv(mirrored_seg->lv->vg->cmd, seg_lv(mirrored_seg, m))) { stack; return 0; @@ -211,6 +217,11 @@ } if (lv1) { + if (!activate_lv(mirrored_seg->lv->vg->cmd, lv1)) { + stack; + return 0; + } + if (!deactivate_lv(mirrored_seg->lv->vg->cmd, lv1)) { stack; return 0; @@ -223,6 +234,11 @@ } if (log_lv) { + if (!activate_lv(mirrored_seg->lv->vg->cmd, log_lv)) { + stack; + return 0; + } + if (!deactivate_lv(mirrored_seg->lv->vg->cmd, log_lv)) { stack; return 0;