1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00
Commit Graph

3200 Commits

Author SHA1 Message Date
Alasdair Kergon
12bb377f9b Default to unlimited number of LVs/PVs in lvm2 format. 2003-11-06 20:33:34 +00:00
Alasdair Kergon
6078f63801 Prevent PV allocation bit getting changed for format_text orphans. 2003-11-06 20:15:13 +00:00
Alasdair Kergon
fee16e1049 Cope better with LVM1 minor numbers & LV numbers. 2003-11-06 16:58:38 +00:00
Alasdair Kergon
c7ee8edc33 relax a scanning restriction 2003-10-15 20:10:11 +00:00
Alasdair Kergon
842a35c7ca Remove incorrect comments. 2003-09-16 16:23:21 +00:00
Alasdair Kergon
85c1926171 Improve segment merge/split code. 2003-09-15 18:22:50 +00:00
Alasdair Kergon
f1e6be4be1 Additional validation of LV segments read from metadata. [HM] 2003-09-01 19:55:16 +00:00
Alasdair Kergon
8fd3c219fd Fix unsafe list iteration in segment merge code. [HM] 2003-08-27 15:30:39 +00:00
Alasdair Kergon
29ebccc3e2 Cope better when format functions are missing. 2003-08-26 21:12:06 +00:00
Alasdair Kergon
10f57523d9 Fix vgimport fix to work outside debug mode. 2003-07-15 01:26:24 +00:00
Alasdair Kergon
914c97239f Another sync point - numerous fixes & clean ups. 2003-07-04 22:34:56 +00:00
Alasdair Kergon
46a68b7dd6 move functions 2003-05-06 12:22:24 +00:00
Alasdair Kergon
44c319cf0d move fields 2003-05-06 12:06:02 +00:00
Alasdair Kergon
97d344e2cb basic pvmove support 2003-04-30 15:23:43 +00:00
Alasdair Kergon
eb8ae8e837 Update segment area length when merging consecutive segments. 2003-04-24 22:46:47 +00:00
Alasdair Kergon
b8c919b402 o Metadata area struct change.
o Support physical extent restrictions on PV lists for allocations
    e.g. lvcreate -l 200 vg1 /dev/sda1:100-199:300-399
2003-04-24 22:23:24 +00:00
Alasdair Kergon
010c07de20 Improve message for pvcreate of empty device. 2003-04-22 16:09:11 +00:00
Alasdair Kergon
27f364af95 Allow for specification of major number as well as minor. 2003-04-02 19:14:43 +00:00
Alasdair Kergon
26e7f2e0c4 Tidy various pre-processing incl. making libdl optional. 2003-03-24 18:08:53 +00:00
Alasdair Kergon
7e4867f743 LV name validation 2003-02-03 20:09:58 +00:00
Alasdair Kergon
a421f74371 vgreduce --removemissing to remove missing PVs & deps & make VG consistent 2003-01-17 21:04:26 +00:00
Alasdair Kergon
8ef2b021ed Default stripesize 64k & config file setting for it;
Clear many compiler warnings (i386) & associated bugs - hopefully without
introducing too many new bugs:-)  (Same exercise required for other archs.)
Default compilation has optimisation - or else use ./configure --enable-debug
2002-12-19 23:25:55 +00:00
Alasdair Kergon
8a95d67e26 Maintain snapshot_count correctly. 2002-12-05 22:30:39 +00:00
Alasdair Kergon
5a52dca9c2 Some new features. 2002-11-18 14:04:08 +00:00
Joe Thornber
7cc602c800 i) Add the VISIBLE flag to the text format. (Other changes are pending
for lib/activate.)
2002-07-11 15:28:49 +00:00
Joe Thornber
291906a208 i) Added a little macro to aid defining the status flags. 2002-07-11 14:36:45 +00:00
Joe Thornber
097d49e73d i) There's now a seperate field in struct logical_volume that stores the
allocation policy.  This can currently take one of three values:

   typedef enum {
        ALLOC_NEXT_FREE,
        ALLOC_STRICT,
        ALLOC_CONTIGUOUS
   } alloc_policy_t;

    Notice that 'SIMPLE' has turned into the slightly more meaningful NEXT_FREE.

ii) Put code into display.[hc] for converting one of these enums to a
    text representation and back again.

ii) Updated the text format so this also has the alloc_policy field.
2002-07-11 14:21:49 +00:00
Alasdair Kergon
70d6838fb0 Tidy 2002-05-31 19:28:37 +00:00
Alasdair Kergon
61e9603be5 Remember to update VG free_count when reducing size of an LV. 2002-05-30 16:08:19 +00:00
Alasdair Kergon
031079703f Rewrite missing/corrupt metadata in more cases. 2002-05-13 12:38:54 +00:00
Alasdair Kergon
64ad493eac Remove a no-op. 2002-05-09 12:03:55 +00:00
AJ Lewis
fccc39a3a7 o Added function find_snapshots to snapshot_manip.c that returns a list
of snapshots whose origin is the lv passed in.
 o Used this new function to make lvdisplay properly display all snapshots
   attached to a origin.
2002-05-08 16:57:46 +00:00
Alasdair Kergon
6b4c9ff740 Some partial VG support with format_text. 2002-04-30 17:12:37 +00:00
Alasdair Kergon
e1f93d52e3 get_vgs must check for text format VGs when no lvm1 format VGs present 2002-04-30 12:27:13 +00:00
Alasdair Kergon
25b733809a Merge with text format branch.
Lots of changes/very little testing so far => there'll be bugs!

Use 'vgcreate -M text' to create a volume group with its metadata stored
in text files.  Text format metadata changes should be reasonably atomic,
with a (basic) automatic recovery mechanism if the system crashes while a
change is in progress.

Add a metadata section to lvm.conf to specify multiple directories if
you want (recommended) to keep multiple copies of the metadata (eg on
different filesystems).

e.g. metadata {
        dirs = ["/etc/lvm/metadata1","/usr/local/lvm/metadata2"]
}

Plenty of refinements still in the pipeline.
2002-04-24 18:20:51 +00:00
Alasdair Kergon
15c325f06a o Use new LCK_HOLD flag to indicate whether lock should be held on return
from lock_vol() - otherwise it now attempts to acquire the lock and then
  immediately releases it.
o Extend the id field in struct logical_volume to hold VG uuid + LV uuid
  for format1. This unique lvid can be used directly when calling lock_vol().
o Add the VG uuid to vgcache to make VG uuid lookups possible.  (Another
  step towards using them instead of VG names internally.)
2002-03-05 20:03:09 +00:00
Alasdair Kergon
413cc9189e Begin conversion so LV id is passed to activation unit instead of
struct logical_volume.
2002-02-25 12:56:16 +00:00
Joe Thornber
7b9e789f9c o Remove the vg argument from find_cow 2002-02-25 11:55:39 +00:00
Heinz Mauelshagen
257ec146b2 Avoid ambigous volume_group argument in vg_add_snapshot() 2002-02-21 18:31:48 +00:00
Joe Thornber
0e32e054df o add find_cow function. 2002-02-21 10:16:33 +00:00
Alasdair Kergon
b6afcf6458 Remove VG arg from lv_is_cow() and lv_is_origin() - use lv->vg instead. 2002-02-20 19:04:55 +00:00
Alasdair Kergon
a45f546fe0 o Use 'pvcreate --setphysicalvolumesize' with no short form (instead of -s)
and add severe warning if it's used to make a device seem bigger than
  it really is.  This is not an option people should be using as it
  breaks metadata integrity.
o Use uint64_t throughout (rather than unsigned long long)
o Convert a few messages that contain pathnames into the more common form:
  pathname: message
2002-02-20 18:29:30 +00:00
Heinz Mauelshagen
e1d93eb457 Second path on "pvcreate -s" 2002-02-15 14:33:59 +00:00
Heinz Mauelshagen
f48d3bcbd0 First cut on "pvcreate -s" 2002-02-15 01:26:16 +00:00
Joe Thornber
e56598a84d o Initialise the snapshot list properly in vgcreate. 2002-02-14 15:06:24 +00:00
Joe Thornber
0a9f8bcf97 o First pass at format1 snapshot support. 2002-02-13 11:43:29 +00:00
Joe Thornber
7d68b08028 o First changes to add snapshot support.
I'm taking a different route from LVM1 here in that snapshots are a
seperate entity from the logical volumes, I think of them as an
application of an LV (or two lvs rather).  As such there is a list of
snapshots held against the vg, and there is *not* a SNAPSHOT, or
SHAPSHOT_ORG flag in lv->status.
2002-02-12 16:31:31 +00:00
Alasdair Kergon
60274aba6e Preparation for an LVM2 liblvm - pass cmd_context into each tool and
link some globals that the tools need into that structure.
2002-02-11 20:50:53 +00:00
Joe Thornber
e74999af51 o Add cmd_line field to struct cmd_context
o  Text format now has a description and time field at the top level.

o  archiving and backup set the description appropriately. eg,

   for an archive:

     description = "Created *before* executing 'lvextend test_vg/lvol0 -l +1'."
     creation_time = 1013166332

   for a backup:

     description = "Created *after* executing 'lvextend test_vg/lvol0 -l +1'."
     creation_time = 1013166332

This is preparing the way for a simple vgcfgundo command.
2002-02-08 11:13:47 +00:00
Alasdair Kergon
812c699c8d Basic support for persistent minor numbers;
slightly different from the current LVM1 method.

  lvcreate --persistent y  --minor 10   (to specify when created)
  lvchange --persistent n  (to turn off)
  lvchange --persistent y  --minor 11   (to change)

--persistent uses a new LV status flag stored on disk
minor number is stored on disk the same way as LVM1 does
(but major number stored is 0; any LVM1 major/minor setting gets lost)

  lvchange -ay --minor 12 (to activate using minor 12, regardless of the
                           on-disk setting, which doesn't get changed)

--minor == -m
--persistent == -M
2002-02-01 17:54:39 +00:00
Alasdair Kergon
851866d2fc Allocate fixed space for vg->system_id when vg is created, instead of
dynamically.
2002-01-30 12:47:29 +00:00
Alasdair Kergon
f53c6aa66e o Basic support for exporting (but importing not completed yet).
o When volume group does not have write flag set, prevent changes to it.
o Preparation for partial activation (not completed yet).
2002-01-29 17:23:33 +00:00
Joe Thornber
4b2ec1929a o There were some alignment problems with pool-debug which I've resolved
by allocating the data block with an additional dbg_malloc.

o  Added an assertion to check that no one is requesting alternate
   alignment for memory allocated from pool.  I can't see us needing this
   for LVM2.
2002-01-28 09:16:09 +00:00
Alasdair Kergon
1176eb2597 Tweak some error message levels. 2002-01-27 21:30:47 +00:00
Alasdair Kergon
7743c8685e Clear a FIXME about checking for identical devices by comparing dev_t
instead of name.
2002-01-24 22:37:24 +00:00
Alasdair Kergon
b2207a1c40 Improve allocation error messages when PVs in a VG have the allocatable
flag unset.
2002-01-24 17:26:00 +00:00
Joe Thornber
0cf2445bb7 o Add extra parameter to lv_manip fns 2002-01-24 17:15:49 +00:00
Joe Thornber
75e4d06ade o Allow fractional parts for size args. eg, lvcreate -L 34.4M
o  Fix a couple of bugs related to the earlier lv_list change
2002-01-21 17:43:10 +00:00
Joe Thornber
f868d63582 o Similar changes for lv_list. 2002-01-21 16:49:32 +00:00
Joe Thornber
4d67a0787f o Typo in comment 2002-01-21 16:10:36 +00:00
Joe Thornber
cc282870dd o Changed
struct pv_list {
	struct list list;
	struct physical_volume pv;
   };

   to

   struct pv_list {
	struct list list;
	struct physical_volume *pv;
   };


o  New function in toollib 'create_pv_list', which creates a list of pv's
   from a given command line array of pv's.

o  Changed lvcreate/extend to use this (fixes lvextend [pv list] bug).
2002-01-21 16:05:23 +00:00
Joe Thornber
e586401ecb o Changed find_pv_in_vg, and find_lv_in_vg to return a struct pv_list * and
struct lv_list * respectively.
2002-01-21 14:28:12 +00:00
Alasdair Kergon
add7dc2d5a o pvcreate --uuid to specify the uuid (required before using vgcfgrestore
onto a new device).  uuid specified must not already exist on the system.
o More message tidying.
o When checking for label, only read PV metadata.
o Add ataraid.  [Needs moving into config/defaults files.]
2002-01-16 18:10:08 +00:00
Joe Thornber
f2f2634990 o vgcfgrestore works ! (with the couple of examples I tried). 2002-01-15 17:37:23 +00:00
Alasdair Kergon
4a624ca055 o ACTIVE is no longer a status flag - lv_active() used to check if an LV
is active in the device-mapper.
o Many operations can be carried out regardless of whether the VG is
  active or not.
o vgscan does not activate anything - use vgchange.
o Change lvrename to support renaming of active LVs.
o Remove '//' appearing in some pathnames.
o Dummy lv_check_segments() for compilation.
2002-01-10 23:21:07 +00:00
Joe Thornber
c6cc24ea3f o _read_id function for import.c 2002-01-10 18:12:26 +00:00
Alasdair Kergon
b80f32dd0a Clarify terminology:
VG is resizeable  - PVs can be added or removed
  PV is allocatable - free extents on it may be allocated to LVs
2002-01-10 15:09:51 +00:00
Joe Thornber
9b5db6c270 o First pass at import.c. Still waiting for label code for the uuid->pv
mapping.
2002-01-10 11:18:08 +00:00
Joe Thornber
5a72a50367 o vgcreate wasn't setting vg->cmd 2002-01-07 15:27:55 +00:00
Joe Thornber
16ab7a0da2 o New function 'merge_segments'
o  Call said function at end of lv_extend
2002-01-07 15:08:28 +00:00
Joe Thornber
3eb1b74b29 o Get format-text.c compiling. 2002-01-07 09:16:20 +00:00
Alasdair Kergon
41b2fd5f4d o Use lvm_snprintf wherever return value is used
o Add parameters to set retention limits for backups
2001-12-31 19:09:51 +00:00
Joe Thornber
9f44467d44 o sync backup changes 2001-12-20 11:52:54 +00:00
Joe Thornber
e8bacbc465 o sync the backup stuff 2001-12-17 19:46:10 +00:00
Alasdair Kergon
faa556e759 Add internal cache holding a 'hint' list of the PVs belonging to each VG.
A substantial speed-up - particularly in readline mode.
If the hints turn out to be wrong, the relevant parts get thrown away.
vgscan destroys it totally.  In both cases it then rebuilds itself as
required.
2001-12-13 00:07:29 +00:00
Alasdair Kergon
b74c8033a2 Fixes for allocation of striped volumes. 2001-12-07 21:17:12 +00:00
Alasdair Kergon
7a61472a0a More striping support & fixes. 2001-12-03 16:27:16 +00:00
Joe Thornber
c0ca88c287 o Comparison function was sorting things in ascending rather than
descending order.

o free off the sort array when finished with it.
2001-11-30 09:19:46 +00:00
Joe Thornber
488a58a998 o Striped allocator
o  Changed pv_map.c to maintain the list of free areas in size order, which
   is more helpful to the allocators.  If you want to allocate a bit of an
   area call consume_area(area, size), this will adjust the area if there's
   some space left and shuffle it to the correct place in the list.


Not tested.
2001-11-29 18:45:35 +00:00
Alasdair Kergon
579944d327 o Tool support for segments.
o vgmerge working.
2001-11-28 13:45:50 +00:00
Joe Thornber
39497a4479 o These now compile. 2001-11-27 17:39:15 +00:00
Joe Thornber
0bab65915d o Sync up todays work on converting to the segmented representation of
logical volumes.  It includes:

   format1 changes.

   metadata.h changes.

   lv_manip.c changed (striped allocation still not done though).

   activate.c changes.

Nothing has been near a compiler as yet.

Alasdair can you look at changing display.c to use to output the mappings
in a more segment oriented format please ?

I haven't put the span list into struct physical_volume to represent allocated
extents.  I think the burden of maintaining it for things like lv_extend may
out weigh it's uses.
2001-11-27 16:37:33 +00:00
Joe Thornber
79b0c9f89a o change chunk_size to stripe_size 2001-11-26 16:30:43 +00:00
Joe Thornber
f95627cf8a o More metadata changes. 2001-11-26 16:18:48 +00:00
Alasdair Kergon
6b35c7eb9d LV create/extend prototype changes for striping 2001-11-26 15:31:46 +00:00
Joe Thornber
3390d370d0 o make it obvious that stripe_segment is variable sized. 2001-11-26 13:15:22 +00:00
Joe Thornber
79437c2734 o segments will have to be held as an array of pointers since they're now
variable sized.
2001-11-26 13:03:36 +00:00
Joe Thornber
23687ed34d o sync the new in core rep. for Alasdair.
This will break everything !  Hopefully things will be working again by
   this evening.
2001-11-26 12:49:29 +00:00
Alasdair Kergon
3080a75445 o activation & active status tests
o lvdisplay fields from kernel
o update lv->size on resize
2001-11-21 19:32:35 +00:00
Alasdair Kergon
9b7742bb36 More LV-related tidying. lvdisplay without args now shows all LVs. 2001-11-14 18:38:07 +00:00
Alasdair Kergon
6e74833c6c Avoid generating duplicate lv names 2001-11-14 14:12:01 +00:00
Alasdair Kergon
5238b63f1a Miscellaneous tidying 2001-11-14 13:52:38 +00:00
Joe Thornber
e55ae5d32e o lvcreate no longer needs the explicit -n flag
o  disabled zeroing of lv until bug's worked out
2001-11-14 12:07:37 +00:00
Joe Thornber
78fc479a69 o Deal with sparse lv arrays (on disk)
o  new fn. dev_zero which zero's an area of a device
2001-11-13 18:52:52 +00:00
Alasdair Kergon
e68b5e3029 o lvdisplay now shows LE / PV map
o fix LE allocation when first PV is full
o reduce VG free_count when removing PVs from VG
2001-11-13 17:53:06 +00:00
Alasdair Kergon
03a8a07d67 Merge lvreduce & lvextend into lvresize. 2001-11-13 14:17:50 +00:00
Joe Thornber
d53f88d7af o Stuff 2001-11-12 19:28:50 +00:00
Joe Thornber
4daacc38cb o Add ALLOC_SIMPLE 2001-11-12 17:55:05 +00:00
Alasdair Kergon
277237805a iospace restructured 2001-11-12 15:10:01 +00:00
Joe Thornber
2107f48208 o Split struct io_space into:
struct format_handler - format methods
   struct format_instance - links instance data, methods, and cmd
   struct cmd_context - dev_dir, memory allocator, device filter
2001-11-12 12:16:57 +00:00
Alasdair Kergon
7858f6fb16 o Added lvextend
o Full signed arguments to lvreduce/lvextend
o Consistent lv_number/pe map use
o Populate pv->pe_allocated
o Fixes for allocation/writing of multiple LVs
2001-11-09 22:01:04 +00:00
Joe Thornber
2ba80b436f o Added lvs_in_vgs_opened 2001-11-07 15:02:07 +00:00
Alasdair Kergon
642c2e964b lvcreate 2001-11-06 19:02:26 +00:00
Joe Thornber
c84cc3847c o lv_extend 2001-11-06 12:01:46 +00:00
Joe Thornber
2cffd7d4e1 o Factor _allocate out for use by lv_extend 2001-11-06 11:31:29 +00:00
Joe Thornber
15e35a737c o lv_reduce
o  pv_maps wasn't taking a list of acceptable pvs
2001-11-06 11:19:33 +00:00
Joe Thornber
ed0502e98b o Contiguous allocation 2001-11-06 10:55:01 +00:00
Joe Thornber
dd4e3f9efc o lv_manip.c will contain the code for lv_create, lv_extend and lv_reduce. 2001-11-06 10:29:56 +00:00
Alasdair Kergon
1138def67f Reinstate size of lv 2001-11-05 18:07:44 +00:00
Joe Thornber
242019fdf4 o code for building free area lists on a pv. Compiles but not run. 2001-11-05 16:41:38 +00:00
Alasdair Kergon
9277853f07 lvcreate prototype 2001-11-05 13:06:03 +00:00
Alasdair Kergon
0a5e4a1442 o Changes to activation interface
o Add pointer lv->vg
o Some naming tweaks to improve clarity
2001-10-31 17:59:52 +00:00
Joe Thornber
1b9fcf48b1 o LGPL list implementation 2001-10-31 12:47:01 +00:00
Joe Thornber
dc6e03dc5b o Add read_ahead and stripes to struct logical_volume 2001-10-29 15:34:56 +00:00
Alasdair Kergon
cfd658dab0 lvremove 2001-10-29 13:52:23 +00:00
Joe Thornber
c7f0b573ac o use dev_name(dev) to get the name of a device, this operation is cheap
since it just get's the first alias.
2001-10-25 14:04:18 +00:00
Joe Thornber
68c14b47aa o removed old files 2001-10-23 14:17:07 +00:00
Alasdair Kergon
ffb3162116 vgextend 2001-10-15 22:04:27 +00:00
Alasdair Kergon
aa290eb285 vgcreate basic extent size validation 2001-10-15 20:29:15 +00:00
Alasdair Kergon
df2e0dc751 More vgcreate error trapping 2001-10-15 18:39:40 +00:00
Alasdair Kergon
ca8f8837c2 o lvm readline error-case tidy-up
o more vgcreate error cases
2001-10-15 12:49:58 +00:00
Joe Thornber
8a482590fa o vgcreate 2001-10-12 14:25:53 +00:00
Alasdair Kergon
9711fef759 vgcreate 2001-10-12 12:21:43 +00:00
Joe Thornber
2cb6249206 o make ios the first argument to pv_create 2001-10-12 10:52:32 +00:00
Joe Thornber
72a5e12b5c o pvcreate
o added uuid unit

o stubbed partition stuff
2001-10-12 10:32:06 +00:00
Joe Thornber
88835ab641 o pv_setup for format1, this is the last one ! 2001-10-10 10:55:55 +00:00
Joe Thornber
755590409e o Code to calculate the metadata layout. 2001-10-10 09:25:04 +00:00
Alasdair Kergon
0dc2a4d6e4 o vgremove.
o filter devices by major.
2001-10-09 17:20:02 +00:00
Joe Thornber
b1713d284d o change pv_read to take a name rather than a device 2001-10-09 16:05:34 +00:00
Joe Thornber
83545752cf o hack, hack, hack 2001-10-09 14:26:45 +00:00
Joe Thornber
47bd29840d o pv_Read works 2001-10-09 08:58:52 +00:00
Joe Thornber
c8ca2a2993 o get_pvs for format 1
o fix vg_read if vg doesn't exist
2001-10-08 17:53:43 +00:00
Joe Thornber
f5f8443131 o read_vg works (or so it claims) 2001-10-08 16:08:16 +00:00
Joe Thornber
721128e86d o sync 2001-10-08 12:11:33 +00:00
Joe Thornber
812efa0f48 o get things compiling 2001-10-08 09:45:16 +00:00
Joe Thornber
d81ec60d19 o test program for reading a vg 2001-10-08 08:47:27 +00:00
Alasdair Kergon
25d42d50a8 Sync include file changes. 2001-10-05 21:39:30 +00:00
Alasdair Kergon
f09fdc28fa revised flags and comments 2001-10-05 13:03:03 +00:00
Alasdair Kergon
ee1f91bf27 metadata status flags regrouping & comments; misc tool changes 2001-10-04 22:53:37 +00:00
Joe Thornber
e6efb2b0bd o got dbg_malloc_t working, Alasdair could you look at the Makefile.in it
seems to be having trouble with the dependencies.

o removed some files from the lib makefile that don't compile yet.
2001-10-04 10:13:07 +00:00
Alasdair Kergon
b39630bdb7 vgcreate & lvmchange outlines 2001-10-03 20:38:07 +00:00
Alasdair Kergon
fbad1c90a1 lvremove outline 2001-10-03 12:34:08 +00:00
Alasdair Kergon
9e300c8427 pvscan framework 2001-10-02 17:09:05 +00:00
Alasdair Kergon
1f6db21f32 Another step towards consistency & compilation. 2001-10-01 22:12:10 +00:00
Alasdair Kergon
28f5d16b4f Misc structural changes. 2001-10-01 19:36:06 +00:00
Joe Thornber
74a54dc297 o changed dev-manager to a dev_filter 2001-10-01 16:21:21 +00:00
Alasdair Kergon
b8ef655fb7 Tidy include files 2001-10-01 15:14:39 +00:00
Joe Thornber
84ad4dabe2 o logical data structures 2001-09-28 13:15:30 +00:00
Patrick Caulfield
7bf5c85a05 Don't include asm/* files 2001-09-27 10:00:47 +00:00
Alasdair Kergon
269930c0da lvactivate checkpoint commit 2001-09-25 12:49:28 +00:00