From: Jens Axboe Date: Fri, 24 Feb 2023 16:59:44 +0000 (-0700) Subject: block: clear bio->bi_bdev when putting a bio back in the cache X-Git-Tag: v6.1.16~239 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=398d8745262d10040720d9d772b5b44c10edf7ec;p=users%2Fdwmw2%2Flinux.git block: clear bio->bi_bdev when putting a bio back in the cache commit 11eb695feb636fa5211067189cad25ac073e7fe5 upstream. This isn't strictly needed in terms of correctness, but it does allow polling to know if the bio has been put already by a different task and hence avoid polling something that we don't need to. Cc: stable@vger.kernel.org Fixes: be4d234d7aeb ("bio: add allocation cache abstraction") Reviewed-by: Keith Busch Signed-off-by: Jens Axboe Signed-off-by: Greg Kroah-Hartman --- diff --git a/block/bio.c b/block/bio.c index 57c2f327225bd..d5cd825d6efc0 100644 --- a/block/bio.c +++ b/block/bio.c @@ -747,6 +747,7 @@ void bio_put(struct bio *bio) bio_uninit(bio); cache = per_cpu_ptr(bio->bi_pool->cache, get_cpu()); bio->bi_next = cache->free_list; + bio->bi_bdev = NULL; cache->free_list = bio; if (++cache->nr > ALLOC_CACHE_MAX + ALLOC_CACHE_SLACK) bio_alloc_cache_prune(cache, ALLOC_CACHE_SLACK);