Skip to content

Commit 2e38bea

Browse files
author
Miklos Szeredi
committed
fuse: add missing FR_FORCE
fuse_file_put() was missing the "force" flag for the RELEASE request when sending synchronously (fuseblk). If this flag is not set, then a sync request may be interrupted before it is dequeued by the userspace filesystem. In this case the OPEN won't be balanced with a RELEASE. Signed-off-by: Miklos Szeredi <[email protected]> Fixes: 5a18ec1 ("fuse: fix hang of single threaded fuseblk filesystem") Cc: <[email protected]> # v2.6.38+
1 parent c470abd commit 2e38bea

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

fs/fuse/file.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ static void fuse_file_put(struct fuse_file *ff, bool sync)
100100
iput(req->misc.release.inode);
101101
fuse_put_request(ff->fc, req);
102102
} else if (sync) {
103+
__set_bit(FR_FORCE, &req->flags);
103104
__clear_bit(FR_BACKGROUND, &req->flags);
104105
fuse_request_send(ff->fc, req);
105106
iput(req->misc.release.inode);

0 commit comments

Comments
 (0)