Messages in this thread | | | Date | Thu, 20 Oct 2022 01:31:43 -0700 | From | Christoph Hellwig <> | Subject | Re: [RFC for-next v2 3/4] block/bio: add pcpu caching for non-polling bio_put |
| |
> + unsigned long flags; > > cache = per_cpu_ptr(bio->bi_pool->cache, get_cpu()); > bio_uninit(bio); > @@ -737,12 +776,15 @@ static inline void bio_put_percpu_cache(struct bio *bio) > cache->free_list = bio; > cache->nr++; > } else { > - put_cpu(); > - bio_free(bio); > - return; > + local_irq_save(flags); > + bio->bi_next = cache->free_list_irq; > + cache->free_list_irq = bio; > + cache->nr_irq++; > + local_irq_restore(flags); > }
Ok, I guess with that my previous comments don't make quite as much sense any more. I think youcan keep flags local in the branch here, though.
| |