On Sun, Feb 19, 2017 at 10:14 AM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > This is one hell of a DoS vector - it's really easy to eat tons of struct > file that way. Preparatory parts of that series make sense on their own, > but your "let's allocate a struct file, call ->open() and schedule that > struct file for closing upon the exit to userland on each kernel_read()" > is not. Found a couple of instances of this pattern (haven't looked very hard, possibly there's more): nfsd_read() cachefiles_write_page() How come this hasn't been a problem for them? Would flush_delayed_fput() work here? I couldn't really find what the locking issues with synchronous fputs were. Thanks, Miklos