Messages in this thread Patch in this message | | | From | Jane Chu <> | Subject | [PATCH 6/6] dm: Ensure dm honors DAXDEV_F_RECOVERY flag on dax only | Date | Wed, 20 Oct 2021 18:10:59 -0600 |
| |
dm_dax_direct_access() supports DAXDEV_F_RECOVERY, so it may translate a poisoned range. But if dm_dax_copy_to/from_iter() don't have a dax_copy_to/from_iter() foundation underneath, performing load/store over poisoned range is dangerous and should be avoided.
Signed-off-by: Jane Chu <jane.chu@oracle.com> --- drivers/md/dm.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 764183ddebc1..5f7fe64d3c37 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -1058,6 +1058,8 @@ static size_t dm_dax_copy_from_iter(struct dax_device *dax_dev, pgoff_t pgoff, if (!ti) goto out; if (!ti->type->dax_copy_from_iter) { + if (flags & DAXDEV_F_RECOVERY) + goto out; ret = copy_from_iter(addr, bytes, i); goto out; } @@ -1082,6 +1084,8 @@ static size_t dm_dax_copy_to_iter(struct dax_device *dax_dev, pgoff_t pgoff, if (!ti) goto out; if (!ti->type->dax_copy_to_iter) { + if (flags & DAXDEV_F_RECOVERY) + goto out; ret = copy_to_iter(addr, bytes, i); goto out; } -- 2.18.4
| |