Re: [PATCH 0/9] overlay: fix inconsistency of ro file after copy-up

From: Miklos Szeredi
Date: Mon Feb 20 2017 - 10:17:02 EST


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