dm table: add always writeable feature
Add a target feature flag DM_TARGET_ALWAYS_WRITEABLE to indicate that a target does not support read-only mode. The initial implementation of the thin provisioning target uses this. Signed-off-by: Alasdair G Kergon <agk@redhat.com>
This commit is contained in:
parent
3791e2fc0e
commit
cc6cbe141a
@ -774,6 +774,12 @@ int dm_table_add_target(struct dm_table *t, const char *type,
|
|||||||
t->singleton = 1;
|
t->singleton = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (dm_target_always_writeable(tgt->type) && !(t->mode & FMODE_WRITE)) {
|
||||||
|
DMERR("%s: target type %s may not be included in read-only tables",
|
||||||
|
dm_device_name(t->md), type);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
tgt->table = t;
|
tgt->table = t;
|
||||||
tgt->begin = start;
|
tgt->begin = start;
|
||||||
tgt->len = len;
|
tgt->len = len;
|
||||||
|
@ -166,6 +166,13 @@ struct target_type {
|
|||||||
#define DM_TARGET_SINGLETON 0x00000001
|
#define DM_TARGET_SINGLETON 0x00000001
|
||||||
#define dm_target_needs_singleton(type) ((type)->features & DM_TARGET_SINGLETON)
|
#define dm_target_needs_singleton(type) ((type)->features & DM_TARGET_SINGLETON)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Indicates that a target does not support read-only devices.
|
||||||
|
*/
|
||||||
|
#define DM_TARGET_ALWAYS_WRITEABLE 0x00000002
|
||||||
|
#define dm_target_always_writeable(type) \
|
||||||
|
((type)->features & DM_TARGET_ALWAYS_WRITEABLE)
|
||||||
|
|
||||||
struct dm_target {
|
struct dm_target {
|
||||||
struct dm_table *table;
|
struct dm_table *table;
|
||||||
struct target_type *type;
|
struct target_type *type;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user