Jaegeuk Kim
ec4d1f6539
block, ice, cfq: support back/front merges and update req->__dun
<4>[136765.870673] c6 4967 ------------[ cut here ]------------
<4>[136765.870717] c6 4967 WARNING: at block/blk-core.c:1534
<4>[136765.871328] c6 4967 [<ffffff8aaceddec0>] bio_attempt_front_merge+0x23c/0x280
<4>[136765.871335] c6 4967 [<ffffff8aacedd16c>] blk_queue_bio+0x314/0xaa8
<4>[136765.871344] c6 4967 [<ffffff8aaced6f68>] generic_make_request+0xfc/0x330
<4>[136765.871351] c6 4967 [<ffffff8aaced6cec>] submit_bio+0x15c/0x2dc
<4>[136765.871362] c6 4967 [<ffffff8aacdfeaf8>] __submit_bio+0x46c/0x4e0
<4>[136765.871371] c6 4967 [<ffffff8aace0abe8>] f2fs_mpage_readpages+0x57c/0x7e4
Assuming that this encrypted bio is mergeable,
blk_queue_bio()
blk_attempt_plug_merge() = false, given by blk_try_merge()=ELEVATOR_NO_MERGE
el_ret = elv_merge()
if (q->last_merge)
elv_bio_merge_ok() = true
blk_try_merge() = ELEVATOR_NO_MERGE;
}
__rq = elv_rqhash_find();
if (__rq = false && elv_bio_merge_ok() = true)
e->type->ops.elevator_merge_fn() -- cfq_merge()
elv_bio_merge_ok() = true
return ELEVATOR_FRONT_MERGE
if (el_ret == ELEVATOR_FRONT_MERGE)
bio_attempt_front_merge()
WARN_ON(dun exists)
So, it should update req->__dun having correct ICE configuration.
Bug: 118824609
Bug: 119454809
Change-Id: Ic79f9474b56b2b911c9083c3a80f3e686bb432bd
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
2023-10-16 15:32:18 +00:00
..
2018-09-19 22:47:15 +02:00
2018-04-13 19:48:18 +02:00
2022-06-12 01:39:01 +03:00
2018-09-19 22:47:11 +02:00
2023-10-16 15:32:18 +00:00
2018-02-28 00:14:35 -08:00
2018-12-29 13:40:14 +01:00
2020-01-12 11:24:24 +01:00
2023-10-16 15:32:18 +00:00
2023-01-07 12:07:33 +01:00
2020-04-13 10:32:52 +02:00
2020-06-30 02:33:58 +03:00
2021-04-26 01:27:02 +03:00
2019-02-12 16:32:37 +08:00
2021-09-26 13:36:19 +02:00
2023-08-17 23:13:06 +00:00
2022-06-12 01:39:01 +03:00
2018-05-28 10:56:49 +05:30
2021-04-26 01:27:02 +03:00
2023-10-16 15:32:17 +00:00
2021-12-14 10:04:48 +01:00
2023-01-07 12:07:10 +01:00