On Sun, Feb 19, 2017 at 10:14 AM, Al Viro <[email protected]> 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

Reply via email to