> 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) (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 */