mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
b8c919b402
o Support physical extent restrictions on PV lists for allocations e.g. lvcreate -l 200 vg1 /dev/sda1:100-199:300-399
44 lines
791 B
C
44 lines
791 B
C
/*
|
|
* Copyright (C) 2001 Sistina Software
|
|
*
|
|
* This file is released under the LGPL.
|
|
*/
|
|
|
|
#ifndef _LVM_PV_MAP_H
|
|
#define _LVM_PV_MAP_H
|
|
|
|
#include "metadata.h"
|
|
#include "bitset.h"
|
|
#include "pool.h"
|
|
|
|
/*
|
|
* The in core rep. only stores a mapping from
|
|
* logical extents to physical extents against an
|
|
* lv. Sometimes, when allocating a new lv for
|
|
* instance, it is useful to have the inverse
|
|
* mapping available.
|
|
*/
|
|
|
|
struct pv_area {
|
|
struct pv_map *map;
|
|
uint32_t start;
|
|
uint32_t count;
|
|
|
|
struct list list;
|
|
};
|
|
|
|
struct pv_map {
|
|
struct pv_list *pvl;
|
|
bitset_t allocated_extents;
|
|
struct list areas;
|
|
|
|
struct list list;
|
|
};
|
|
|
|
struct list *create_pv_maps(struct pool *mem,
|
|
struct volume_group *vg, struct list *pvs);
|
|
|
|
void consume_pv_area(struct pv_area *area, uint32_t to_go);
|
|
|
|
#endif
|