David Butterfield
2017-05-26 15:17:51 UTC
Looking at fs/fuse/file.c, it looks as if fuse_release() directly calls
fuse_request_send_background() to send the request. But at that point I
can no longer follow the code. Is it possible for another request to
sneak in at this point?
Furthermore, does the VFS call fuse_release() directly while handling
the close() syscall, or does this happen asynchronously later on?
Does the comment in fuse_release_common (called by fuse_release)fuse_request_send_background() to send the request. But at that point I
can no longer follow the code. Is it possible for another request to
sneak in at this point?
Furthermore, does the VFS call fuse_release() directly while handling
the close() syscall, or does this happen asynchronously later on?
(Linux 4.4.0) answer this?
267 /*
268 * Normally this will send the RELEASE request, however if
269 * some asynchronous READ or WRITE requests are outstanding,
270 * the sending will be delayed.
271 *
272 * Make the release synchronous if this is a fuseblk mount,
273 * synchronous RELEASE is allowed (and desirable) in this case
274 * because the server can be trusted not to screw up.
275 */