summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2023-03-15 11:39:06 -0700
committerJens Axboe <axboe@kernel.dk>2023-03-16 09:35:09 -0600
commit5b8562f0e87b9bc7e581fc482e5a242885f79b88 (patch)
tree3fb54ae632f73d4aaec167f2949c6a4db313e4b0 /block
parent435c0e999689b7f383d0a27978cdaa08669cf134 (diff)
downloadlinux-5b8562f0e87b9bc7e581fc482e5a242885f79b88.tar.gz
blk-mq: return actual keyslot error in blk_insert_cloned_request()
To avoid hiding information, pass on the error code from blk_crypto_rq_get_keyslot() instead of always using BLK_STS_IOERR. Signed-off-by: Eric Biggers <ebiggers@google.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20230315183907.53675-2-ebiggers@kernel.org Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r--block/blk-mq.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 5e819de2f5e7..a875b1cdff9b 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -3049,8 +3049,9 @@ blk_status_t blk_insert_cloned_request(struct request *rq)
if (q->disk && should_fail_request(q->disk->part0, blk_rq_bytes(rq)))
return BLK_STS_IOERR;
- if (blk_crypto_rq_get_keyslot(rq))
- return BLK_STS_IOERR;
+ ret = blk_crypto_rq_get_keyslot(rq);
+ if (ret != BLK_STS_OK)
+ return ret;
blk_account_io_start(rq);