Skip to contentSkip to conversation

Patch "fuse: add missing FR_FORCE" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Mar 10, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

fuse: add missing FR_FORCE

to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
fuse-add-missing-fr_force.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 2e38bea99a80eab408adee27f873a188d57b76cb Mon Sep 17 00:00:00 2001

From: Miklos Szeredi <[email protected]>
Date: Wed, 22 Feb 2017 20:08:25 +0100
Subject: fuse: add missing FR_FORCE

From: Miklos Szeredi <[email protected]>

commit 2e38bea99a80eab408adee27f873a188d57b76cb upstream.

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.

Fixes 5a18ec176c93 ("fuse: fix hang of single threaded fuseblk filesystem")
---
 fs/fuse/file.c |    1 +
 1 file changed, 1 insertion(+)
fs/fuse/file.c +1 -0
@@ -100,6 +100,7 @@ static void fuse_file_put(struct fuse_fi
 			iput(req->misc.release.inode);
 			fuse_put_request(ff->fc, req);
 		} else if (sync) {
+			__set_bit(FR_FORCE, &req->flags);
 			__clear_bit(FR_BACKGROUND, &req->flags);
 			fuse_request_send(ff->fc, req);
 			iput(req->misc.release.inode);

Patches currently in stable-queue which might be from [email protected] are

queue-4.9/fuse-add-missing-fr_force.patch