Hi, This v2 is the by-product of my having picked up v1's patch 2+3 and folding them (into patch 1 of this v2 series). So patch 1 of this v2 is settled and will be merged into 5.20. Patches 2 and 3 are the result of me having gone over the v1 code. I folded in the copy-n-paste bugfix that Eric Biggers kindly pointed out in v1. I also updated patch headers and code comments for clarity. And I also renamed some variables, tweaked some style knits (subjective but whatever). This code is available in linux-dm.git's 'dm-5.20' branch: https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/log/?h=dm-5.20 Which is based on Jens's for-5.20/block I'll obviously rebase 'dm-5.20' ontop of Jens's branch if/when he picks up patch 2 in this series. This code is passing all my tests so far but testing is ongoing. All comments welcome. ps. I was told Kent had replied to the v1 thread while I was working on this v2, I kept focus on finishing this v2. I'll check my email in a bit. Ming Lei (3): dm: improve BLK_STS_DM_REQUEUE and BLK_STS_AGAIN handling block: add bio_rewind() API dm: add two stage requeue mechanism block/bio-integrity.c | 19 +++++ block/bio.c | 20 +++++ block/blk-crypto-internal.h | 7 ++ block/blk-crypto.c | 25 ++++++ drivers/md/dm-core.h | 11 ++- drivers/md/dm.c | 189 ++++++++++++++++++++++++++++++++++---------- include/linux/bio.h | 21 +++++ include/linux/bvec.h | 33 ++++++++ 8 files changed, 281 insertions(+), 44 deletions(-) -- 2.15.0