From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4933 invoked by alias); 6 Jun 2009 16:37:15 -0000 Received: (qmail 4919 invoked by uid 9664); 6 Jun 2009 16:37:15 -0000 Date: Sat, 06 Jun 2009 16:37:00 -0000 Message-ID: <20090606163715.4917.qmail@sourceware.org> From: mbroz@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/lib/metadata lv_manip.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-06/txt/msg00016.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: mbroz@sourceware.org 2009-06-06 16:37:15 Modified files: lib/metadata : lv_manip.c Log message: Suspend virtual origin before real snapshot. Because preload of table for snapshot can produce snapshot metadata (in kernel cow header) read. Code should suspend origin first to avoid possible deadlock when preloading (thus calling snapshot in-kernel constructor) for origin with suspended cow device. (fixes previous commit) Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/lv_manip.c.diff?cvsroot=lvm2&r1=1.180&r2=1.181 --- LVM2/lib/metadata/lv_manip.c 2009/06/01 15:55:07 1.180 +++ LVM2/lib/metadata/lv_manip.c 2009/06/06 16:37:15 1.181 @@ -1806,7 +1806,7 @@ /* rename active virtual origin too */ if (lv_is_cow(lv) && lv_is_virtual_origin(lvl2.lv = origin_from_cow(lv))) - dm_list_add(&lvs_changed, &lvl2.list); + dm_list_add_h(&lvs_changed, &lvl2.list); log_verbose("Writing out updated volume group"); if (!vg_write(vg))