On Tue, Sep 15 2020 at 11:53pm -0400,
Eric Biggers [off-list ref] wrote:
From: Eric Biggers <redacted>
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.
Cc: Miaohe Lin <linmiaohe@huawei.com>
Suggested-by: Satya Tangirala <redacted>
Signed-off-by: Eric Biggers <redacted>
Reviewed-by: Mike Snitzer <redacted>