On Mon, Apr 15, 2013 at 5:08 PM, Miklos Szeredi <[email protected]> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

