]> git.baikalelectronics.ru Git - kernel.git/commit
fuse: hold inode instead of path after release
authorMiklos Szeredi <mszeredi@suse.cz>
Fri, 12 Dec 2014 08:49:04 +0000 (09:49 +0100)
committerMiklos Szeredi <mszeredi@suse.cz>
Fri, 12 Dec 2014 08:49:04 +0000 (09:49 +0100)
commit444b3b8f9e19fd968ac3cfe0e694e9f4a68b8657
tree19cb0ed831569c140cd82c8cf5bac413e4c92803
parent4619769f31828603c24b8a7537e6b78ed81dc58a
fuse: hold inode instead of path after release

path_put() in release could trigger a DESTROY request in fuseblk.  The
possible deadlock was worked around by doing the path_put() with
schedule_work().

This complexity isn't needed if we just hold the inode instead of the path.
Since we now flush all requests before destroying the super block we can be
sure that all held inodes will be dropped.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
fs/fuse/file.c
fs/fuse/fuse_i.h