diff options
author | Mike Snitzer <snitzer@redhat.com> | 2015-06-26 10:01:13 -0400 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2015-06-26 10:11:58 -0400 |
commit | 78d8e58a086b214dddf1fd463e20a7e1d82d7866 (patch) | |
tree | 2868b9a09eb82b8ecf37ec96fc494838dfdee63a /drivers/md/dm.h | |
parent | 4e6e36c3714364b65f2bfea8c73691c663891726 (diff) | |
download | op-kernel-dev-78d8e58a086b214dddf1fd463e20a7e1d82d7866.zip op-kernel-dev-78d8e58a086b214dddf1fd463e20a7e1d82d7866.tar.gz |
Revert "block, dm: don't copy bios for request clones"
This reverts commit 5f1b670d0bef508a5554d92525f5f6d00d640b38.
Justification for revert as reported in this dm-devel post:
https://www.redhat.com/archives/dm-devel/2015-June/msg00160.html
this change should not be pushed to mainline yet.
Firstly, Christoph has a newer version of the patch that fixes silent
data corruption problem:
https://www.redhat.com/archives/dm-devel/2015-May/msg00229.html
And the new version still depends on LLDDs to always complete requests
to the end when error happens, while block API doesn't enforce such a
requirement. If the assumption is ever broken, the inconsistency between
request and bio (e.g. rq->__sector and rq->bio) will cause silent data
corruption:
https://www.redhat.com/archives/dm-devel/2015-June/msg00022.html
Reported-by: Junichi Nomura <j-nomura@ce.jp.nec.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/md/dm.h')
-rw-r--r-- | drivers/md/dm.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/md/dm.h b/drivers/md/dm.h index e6e66d0..6123c2b 100644 --- a/drivers/md/dm.h +++ b/drivers/md/dm.h @@ -222,9 +222,8 @@ void dm_kcopyd_exit(void); /* * Mempool operations */ -struct dm_md_mempools *dm_alloc_bio_mempools(unsigned integrity, - unsigned per_bio_data_size); -struct dm_md_mempools *dm_alloc_rq_mempools(struct mapped_device *md, unsigned type); +struct dm_md_mempools *dm_alloc_md_mempools(struct mapped_device *md, unsigned type, + unsigned integrity, unsigned per_bio_data_size); void dm_free_md_mempools(struct dm_md_mempools *pools); /* |