In submit_bio_noacct(), call bio_endio() and return directly when successful. That way, bio_set_status(bio, status) will only be called for actual errors and the compiler can optimize out the 'status != BLK_STS_OK' check inside bio_set_status().
Signed-off-by: Andreas Gruenbacher <[email protected]> --- block/blk-core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/block/blk-core.c b/block/blk-core.c index 4f7b7cf50d23..95cbb3ffcf9f 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -816,8 +816,8 @@ void submit_bio_noacct(struct bio *bio) if (!bdev_write_cache(bdev)) { bio->bi_opf &= ~(REQ_PREFLUSH | REQ_FUA); if (!bio_sectors(bio)) { - status = BLK_STS_OK; - goto end_io; + bio_endio(bio); + return; } } } @@ -882,7 +882,7 @@ void submit_bio_noacct(struct bio *bio) not_supported: status = BLK_STS_NOTSUPP; end_io: - bio->bi_status = status; + bio_set_status(bio, status); bio_endio(bio); } EXPORT_SYMBOL(submit_bio_noacct); -- 2.51.0
