|
@@ -2301,6 +2301,13 @@ static int origin_map(struct dm_target *ti, struct bio *bio)
|
|
return do_origin(o->dev, bio);
|
|
return do_origin(o->dev, bio);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static long origin_direct_access(struct dm_target *ti, sector_t sector,
|
|
|
|
+ void __pmem **kaddr, pfn_t *pfn, long size)
|
|
|
|
+{
|
|
|
|
+ DMWARN("device does not support dax.");
|
|
|
|
+ return -EIO;
|
|
|
|
+}
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Set the target "max_io_len" field to the minimum of all the snapshots'
|
|
* Set the target "max_io_len" field to the minimum of all the snapshots'
|
|
* chunk sizes.
|
|
* chunk sizes.
|
|
@@ -2360,6 +2367,7 @@ static struct target_type origin_target = {
|
|
.postsuspend = origin_postsuspend,
|
|
.postsuspend = origin_postsuspend,
|
|
.status = origin_status,
|
|
.status = origin_status,
|
|
.iterate_devices = origin_iterate_devices,
|
|
.iterate_devices = origin_iterate_devices,
|
|
|
|
+ .direct_access = origin_direct_access,
|
|
};
|
|
};
|
|
|
|
|
|
static struct target_type snapshot_target = {
|
|
static struct target_type snapshot_target = {
|