[lvm-devel] LVM2 ./WHATS_NEW lib/metadata/metadata-exporte ...
wysochanski at sourceware.org
wysochanski at sourceware.org
Wed Apr 23 14:33:06 UTC 2008
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: wysochanski at sourceware.org 2008-04-23 14:33:06
Modified files:
. : WHATS_NEW
lib/metadata : metadata-exported.h
tools : vgsplit.c
Log message:
Fix vgsplit internal counting of snapshot LVs.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.859&r2=1.860
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/metadata-exported.h.diff?cvsroot=lvm2&r1=1.47&r2=1.48
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/vgsplit.c.diff?cvsroot=lvm2&r1=1.66&r2=1.67
--- LVM2/WHATS_NEW 2008/04/23 12:53:10 1.859
+++ LVM2/WHATS_NEW 2008/04/23 14:33:05 1.860
@@ -1,5 +1,6 @@
Version 2.02.36 -
=================================
+ Fix vgsplit internal counting of snapshot LVs.
Fix internal snapshot_count when vgmerge with snapshots in source VG.
Simply clvmd-openais by using non-async saLckResourceLock.
Check lv_count in vg_validate.
--- LVM2/lib/metadata/metadata-exported.h 2008/04/10 17:09:31 1.47
+++ LVM2/lib/metadata/metadata-exported.h 2008/04/23 14:33:05 1.48
@@ -202,7 +202,23 @@
uint32_t pv_count;
struct list pvs;
- /* logical volumes */
+ /*
+ * logical volumes
+ * The following relationship should always hold:
+ * list_size(lvs) = lv_count + 2 * snapshot_count
+ *
+ * Snapshots consist of 2 instances of "struct logical_volume":
+ * - cow (lv_name is visible to the user)
+ * - snapshot (lv_name is 'snapshotN')
+ * Neither of these instances is reflected in lv_count, but we
+ * multiply the snapshot_count by 2.
+ *
+ * Mirrors consist of multiple instances of "struct logical_volume":
+ * - one for the mirror log
+ * - one for each mirror leg
+ * - one for the user-visible mirror LV
+ * all of the instances are reflected in lv_count.
+ */
uint32_t lv_count;
uint32_t snapshot_count;
struct list lvs;
--- LVM2/tools/vgsplit.c 2008/04/15 14:57:12 1.66
+++ LVM2/tools/vgsplit.c 2008/04/23 14:33:06 1.67
@@ -109,7 +109,7 @@
if (lv->status & SNAPSHOT) {
vg_from->snapshot_count--;
vg_to->snapshot_count++;
- } else {
+ } else if (!lv_is_cow(lv)) {
vg_from->lv_count--;
vg_to->lv_count++;
}
More information about the lvm-devel
mailing list