On 1/28/19 5:03 PM, Jens Axboe wrote: >> But you only do that teardown on ->release, right? And ->release >> doesn't have much to do with the process lifetime. > > Yes, only on ->relase(). OK, so I reworked the files struct to just grab it, then we ensure that doesn't go away. For mm, it's a bit more tricky. I think the best solution here is to add a fops->flush() and check for the process exiting its files. If it does, we quiesce the async contexts and prevent further use of that mm. We can't just keep holding a reference to the mm like we do with the files. That should solve both cases. -- Jens Axboe