Messages in this thread | | | Date | Tue, 30 Sep 2014 12:04:08 -0700 | Subject | Re: [PATCH 0/5] fuse: handle release synchronously (v4) | From | Linus Torvalds <> |
| |
On Mon, Sep 29, 2014 at 10:33 PM, Anand Avati <avati@gluster.org> wrote: > > In general that sounds reasonable. The problem (as described in the original > thread, at http://sourceforge.net/p/fuse/mailman/message/29889055/)
From a quick look at that thread, the solution is clear: you *must* flush your write buffers in the "flush" function.
The fact that you must flush write buffers multiple times if people have done "dup()" is a complete non-issue. Just flush them each time. There is no "how do I differentiate the first flush and the second flush?" The answer is that you don't, and that you MUST NOT. You need to flush on both (or more). Trying to distinguish first vs second is broken, and would be wrogn *anyway*. There is no possible situation where it could validaly matter, and you simply cannot tell.
Don't do any data structure cleanups, that's for "release()". But yes, you do have to flush write buffers at flush time (and return IO errors if they happen). That's very much the point of flush.
Linus
| |