]> git.karo-electronics.de Git - karo-tx-linux.git/commit
fuse: fix hang of single threaded fuseblk filesystem
authorMiklos Szeredi <mszeredi@suse.cz>
Fri, 25 Feb 2011 13:44:58 +0000 (14:44 +0100)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Sun, 26 Jun 2011 16:46:53 +0000 (12:46 -0400)
commit83e6726210d6c815ce044437106c738eda5ff6f6
tree6da7fa5db739756f7deb5391e2a5d1cd5f20bef0
parentd333643bbe0d7a0634bc988ae379f8fa602df2f7
fuse: fix hang of single threaded fuseblk filesystem

commit 5a18ec176c934ca1bc9dc61580a5e0e90a9b5733 upstream.

Single threaded NTFS-3G could get stuck if a delayed RELEASE reply
triggered a DESTROY request via path_put().

Fix this by

 a) making RELEASE requests synchronous, whenever possible, on fuseblk
 filesystems

 b) if not possible (triggered by an asynchronous read/write) then do
 the path_put() in a separate thread with schedule_work().

Reported-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
fs/fuse/file.c
fs/fuse/fuse_i.h