On 1/9/19 12:03 PM, Christoph Hellwig wrote: > On Wed, Jan 09, 2019 at 09:57:59AM -0700, Jens Axboe wrote: >> On 1/9/19 5:13 AM, Christoph Hellwig wrote: >>>> + if (!state) >>>> + req = kmem_cache_alloc(kiocb_cachep, GFP_KERNEL); >>> >>> Just return an error here if kmem_cache_alloc fails. >>> >>>> + if (req) >>>> + io_req_init(ctx, req); >>> >>> Because all the other ones can't reached this with a NULL req. >> >> This is different in the current tree, since I properly fixed the >> ctx ref issue. > > Your tree does a percpu_ref_tryget very first, and then leaks that if > kmem_cache_alloc_bulk fails, and also is inconsistent for NULL vs > ERR_PTR returns. I think you want something like this on top: I fixed it up while doing the rebase already. Just haven't pushed anything out until I've had a chance to run it through testing. -- Jens Axboe