dm table: add singleton feature

Introduce the concept of a singleton table which contains exactly one target.

If a target type sets the DM_TARGET_SINGLETON feature bit device-mapper
will ensure that any table that includes that target contains no others.

The thin provisioning pool target uses this.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
This commit is contained in:
Alasdair G Kergon
2011-10-31 20:19:00 +00:00
parent 7f06965390
commit 3791e2fc0e
2 changed files with 26 additions and 4 deletions

View File

@ -128,10 +128,6 @@ void dm_put_device(struct dm_target *ti, struct dm_dev *d);
* Information about a target type
*/
/*
* Target features
*/
struct target_type {
uint64_t features;
const char *name;
@ -160,6 +156,16 @@ struct target_type {
struct list_head list;
};
/*
* Target features
*/
/*
* Any table that contains an instance of this target must have only one.
*/
#define DM_TARGET_SINGLETON 0x00000001
#define dm_target_needs_singleton(type) ((type)->features & DM_TARGET_SINGLETON)
struct dm_target {
struct dm_table *table;
struct target_type *type;