On 6/21/18 6:34 AM, Christoph Hellwig wrote: > On Mon, Jun 18, 2018 at 09:37:01AM -0600, Jens Axboe wrote: >> It was born with that mode, but I don't think anyone ever really used it. >> So it might feasible to simply yank it. That said, just doing a prune >> mode at ->release() time doesn't seem like such a hard task. > > Let's try to kill it. It is a significant amount of code, which does > fishy things and is probably entirely unused: I'd be fine with that, if we knew that nobody uses it. But that's really hard to figure out. I did see Jann's source code scan, which even if non-exhaustive, still shows at least one user of it. How about we just make the write interface sync? Then any copy can happen while the we block the task, and the read side is just copying the header info back, or dumping it if the task didn't read it before it went away. That will still be functional, just not queueable. But that's not a huge concern, it won't break any applications. And with pure sync issue, most of the code goes away anyway and becomes similar to the sync ioctl. -- Jens Axboe