dm error: add DAX support
Allow the error target to replace an existing DAX-enabled target. Signed-off-by: Mike Snitzer <snitzer@redhat.com>
This commit is contained in:
parent
84b22f8378
commit
f8df1fdf18
|
@ -922,7 +922,8 @@ static int dm_table_determine_type(struct dm_table *t)
|
||||||
if (bio_based) {
|
if (bio_based) {
|
||||||
/* We must use this table as bio-based */
|
/* We must use this table as bio-based */
|
||||||
t->type = DM_TYPE_BIO_BASED;
|
t->type = DM_TYPE_BIO_BASED;
|
||||||
if (dm_table_supports_dax(t))
|
if (dm_table_supports_dax(t) ||
|
||||||
|
(list_empty(devices) && live_md_type == DM_TYPE_DAX_BIO_BASED))
|
||||||
t->type = DM_TYPE_DAX_BIO_BASED;
|
t->type = DM_TYPE_DAX_BIO_BASED;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -148,9 +148,15 @@ static void io_err_release_clone_rq(struct request *clone)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static long io_err_direct_access(struct dm_target *ti, sector_t sector,
|
||||||
|
void __pmem **kaddr, pfn_t *pfn, long size)
|
||||||
|
{
|
||||||
|
return -EIO;
|
||||||
|
}
|
||||||
|
|
||||||
static struct target_type error_target = {
|
static struct target_type error_target = {
|
||||||
.name = "error",
|
.name = "error",
|
||||||
.version = {1, 4, 0},
|
.version = {1, 5, 0},
|
||||||
.features = DM_TARGET_WILDCARD,
|
.features = DM_TARGET_WILDCARD,
|
||||||
.ctr = io_err_ctr,
|
.ctr = io_err_ctr,
|
||||||
.dtr = io_err_dtr,
|
.dtr = io_err_dtr,
|
||||||
|
@ -158,6 +164,7 @@ static struct target_type error_target = {
|
||||||
.map_rq = io_err_map_rq,
|
.map_rq = io_err_map_rq,
|
||||||
.clone_and_map_rq = io_err_clone_and_map_rq,
|
.clone_and_map_rq = io_err_clone_and_map_rq,
|
||||||
.release_clone_rq = io_err_release_clone_rq,
|
.release_clone_rq = io_err_release_clone_rq,
|
||||||
|
.direct_access = io_err_direct_access,
|
||||||
};
|
};
|
||||||
|
|
||||||
int __init dm_target_init(void)
|
int __init dm_target_init(void)
|
||||||
|
|
Loading…
Reference in New Issue