[Devel] [PATCH 0/5] fuse: close file synchronously

Miklos Szeredi miklos at szeredi.hu
Mon Apr 15 08:30:41 PDT 2013


On Mon, Apr 15, 2013 at 5:08 PM, Miklos Szeredi <miklos at szeredi.hu> wrote:
> For example doing a readlink() on a magic symlink under /proc
> shouldn't result in a synchronous call to a fuse filesystem.  Making
> fput() synchronous may actually end up doing that (even if it's not
> very likely).

Thinking about this a bit more.  As it is it sounds wrong to rely on a
synchronous release, when in fact release is just not synchronous, as
indicated by the above example.  Maybe it's the proc code that's buggy
and shouldn't do get_file/fput because everyone is assuming release
being synchronous with close().  Don't know.

Let's approach it from the other direction:  what if you give back the
write lease on the first flush?  It will probably work fine for 99% of
cases, since no other writes are going to happen after the first
flush.  For the remaining cases you'll just have to reacquire the
lease when a write happens after the flush.  I guess performance-wise
that will not be an issue, but I may be wrong.

Thanks,
Miklos



More information about the Devel mailing list