From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 665 invoked by alias); 25 Feb 2011 14:08:58 -0000 Received: (qmail 646 invoked by uid 9796); 25 Feb 2011 14:08:58 -0000 Date: Fri, 25 Feb 2011 14:08:00 -0000 Message-ID: <20110225140858.644.qmail@sourceware.org> From: prajnoha@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW lib/format_text/format-text.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: 2011-02/txt/msg00074.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: prajnoha@sourceware.org 2011-02-25 14:08:55 Modified files: . : WHATS_NEW lib/format_text: format-text.c lib/metadata : metadata.c Log message: Allow only orphan PVs to be resized even with two metadata areas. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1925&r2=1.1926 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.c.diff?cvsroot=lvm2&r1=1.168&r2=1.169 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/metadata.c.diff?cvsroot=lvm2&r1=1.435&r2=1.436 --- LVM2/WHATS_NEW 2011/02/25 14:02:53 1.1925 +++ LVM2/WHATS_NEW 2011/02/25 14:08:54 1.1926 @@ -2,7 +2,7 @@ =================================== Fix metadata balance code to work with recent changes in metadata handling. Add old_uuid field to physical_volume and fix pvchange -u for recent changes. - Allow pvresize on a PV with two metadata areas. + Allow pvresize on a PV with two metadata areas (for PVs not in a VG). Change pvcreate to use new metadata handling interface. Restructure existing pv_setup and pv_write fn, add pv_initialise fn. Add internal interface to support adding and removing metadata areas. --- LVM2/lib/format_text/format-text.c 2011/02/25 13:59:47 1.168 +++ LVM2/lib/format_text/format-text.c 2011/02/25 14:08:55 1.169 @@ -2161,6 +2161,17 @@ /* If there's an mda at the end, move it to a new position. */ if ((mda = fid_get_mda_indexed(fid, pvid, ID_LEN, 1)) && (mdac = mda->metadata_locn)) { + /* + * FIXME: Remove this restriction - we need to + * allow writing PV labels on non-orphan VGs + * for this to work correctly. + */ + if (vg) { + log_error("Resizing a PV with two metadata areas " + "that is part of a VG is not supported."); + return 0; + } + /* FIXME: Maybe MDA0 size would be better? */ mda_size = mdac->area.size >> SECTOR_SHIFT; mda_ignored = mda_is_ignored(mda); --- LVM2/lib/metadata/metadata.c 2011/02/25 14:02:54 1.435 +++ LVM2/lib/metadata/metadata.c 2011/02/25 14:08:55 1.436 @@ -3543,6 +3543,12 @@ return 0; } + /* + * FIXME: Try to remove this restriction. This requires checking + * that the PV and the VG are in a consistent state. We need + * to provide some revert mechanism since PV label together + * with VG metadata write is not atomic. + */ if (!is_orphan_vg(pv->vg_name) || pv->pe_alloc_count) { log_error("Assertion failed: can't _pv_write non-orphan PV " "(in VG %s)", pv->vg_name);