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;
|
||||
}
|
||||
|
||||
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->begin = start;
|
||||
tgt->len = len;
|
||||
|
|
|
@ -166,6 +166,13 @@ struct target_type {
|
|||
#define DM_TARGET_SINGLETON 0x00000001
|
||||
#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_table *table;
|
||||
struct target_type *type;
|
||||
|
|
Loading…
Reference in New Issue