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> [stummala@codeaurora.org: Fix merge conflicts] Signed-off-by:
Sahitya Tummala <stummala@codeaurora.org>
Loading
Please register or sign in to comment