Messages in this thread Patch in this message | | | From | Hongyu Jin <> | Subject | [PATCH v7 5/5] dm-crypt: Fix lost ioprio when queuing write bios | Date | Thu, 21 Dec 2023 18:31:39 +0800 |
| |
From: Hongyu Jin <hongyu.jin@unisoc.com>
Since dm-crypt queues writes to a different kernel thread (workqueue), the bios will dispatch from tasks with different io_context->ioprio settings and blkcg than the submitting task, thus giving incorrect ioprio to the io scheduler.
Get the original io priority setting via struct dm_crypt_io::base_bio and set this priority to the bio for write.
Link: https://lore.kernel.org/dm-devel/alpine.LRH.2.11.1612141049250.13402@mail.ewheeler.net
Signed-off-by: Hongyu Jin <hongyu.jin@unisoc.com> --- drivers/md/dm-crypt.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c index 2ae8560b6a14..ba6e794f7871 100644 --- a/drivers/md/dm-crypt.c +++ b/drivers/md/dm-crypt.c @@ -1683,6 +1683,7 @@ static struct bio *crypt_alloc_buffer(struct dm_crypt_io *io, unsigned int size) GFP_NOIO, &cc->bs); clone->bi_private = io; clone->bi_end_io = crypt_endio; + clone->bi_ioprio = io->base_bio->bi_ioprio; remaining_size = size; -- 2.34.1
| |