block: make blk_crypto_rq_bio_prep() able to fail
blk_crypto_rq_bio_prep() assumes its gfp_mask argument always includes
__GFP_DIRECT_RECLAIM, so that the mempool_alloc() will always succeed.
However, blk_crypto_rq_bio_prep() might be called with GFP_ATOMIC via
setup_clone() in drivers/md/dm-rq.c.
This case isn't currently reachable with a bio that actually has an
encryption context. However, it's fragile to rely on this. Just make
blk_crypto_rq_bio_prep() able to fail.
Suggested-by: Satya Tangirala <[email protected]>
Signed-off-by: Eric Biggers <[email protected]>
Reviewed-by: Mike Snitzer <[email protected]>
Reviewed-by: Satya Tangirala <[email protected]>
Cc: Miaohe Lin <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
4 files changed