1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
lvm2/lib/format1
David Teigland 1e65fdd9ba system_id: make new VGs read-only for old lvm versions
Previous versions of lvm will not obey the restrictions
imposed by the new system_id, and would allow such a VG
to be written.  So, a VG with a new system_id is further
changed to force previous lvm versions to treat it as
read-only.  This is done by removing the WRITE flag from
the metadata status line of these VGs, and putting a new
WRITE_LOCKED flag in the flags line of the metadata.

Versions of lvm that recognize WRITE_LOCKED, also obey the
new system_id.  For these lvm versions, WRITE_LOCKED is
identical to WRITE, and the rules associated with matching
system_id's are imposed.

A new VG lock_type field is also added that causes the same
WRITE/WRITE_LOCKED transformation when set.  A previous
version of lvm will also see a VG with lock_type as read-only.

Versions of lvm that recognize WRITE_LOCKED, must also obey
the lock_type setting.  Until the lock_type feature is added,
lvm will fail to read any VG with lock_type set and report an
error about an unsupported lock_type.  Once the lock_type
feature is added, lvm will allow VGs with lock_type to be
used according to the rules imposed by the lock_type.

When both system_id and lock_type settings are removed, a VG
is written with the old WRITE status flag, and without the
new WRITE_LOCKED flag.  This allows old versions of lvm to
use the VG as before.
2015-03-05 09:50:43 -06:00
..
.exported_symbols .export.sym generation 2004-03-26 14:51:23 +00:00
disk-rep.c lvm1: Fail vg_write graciously when devices are missing. 2014-06-08 21:57:18 +02:00
disk-rep.h system_id: make new VGs read-only for old lvm versions 2015-03-05 09:50:43 -06:00
format1.c Revert "systemid: Add ACCESS_NEEDS_SYSTEM_ID VG flag." 2015-03-05 09:50:43 -06:00
format1.h split orphan VG by format type 2008-02-06 15:47:28 +00:00
import-export.c system_id: make new VGs read-only for old lvm versions 2015-03-05 09:50:43 -06:00
import-extents.c thin: simplify thin volume creation 2014-10-26 18:37:13 +01:00
layout.c cleanup: uint64_t casts 2012-08-23 14:37:21 +02:00
lvm1-label.c labeller: Make the use of "private" as "fmt" explicit. 2013-11-17 21:41:27 +01:00
lvm1-label.h Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1. 2007-08-20 20:55:30 +00:00
Makefile.in Install plugins to subdirs 2010-05-06 10:07:46 +00:00
vg_number.c cleanup: replace memset with struct initilization 2012-06-22 13:23:03 +02:00