fuse: support clients that don't implement 'open'
authorAndrew Gallagher <agallagher@fb.com>
Tue, 5 Nov 2013 15:05:52 +0000 (16:05 +0100)
committerMiklos Szeredi <mszeredi@suse.cz>
Wed, 22 Jan 2014 18:36:59 +0000 (19:36 +0100)
open/release operations require userspace transitions to keep track
of the open count and to perform any FS-specific setup.  However,
for some purely read-only FSs which don't need to perform any setup
at open/release time, we can avoid the performance overhead of
calling into userspace for open/release calls.

This patch adds the necessary support to the fuse kernel modules to prevent
open/release operations from hitting in userspace. When the client returns
ENOSYS, we avoid sending the subsequent release to userspace, and also
remember this so that future opens also don't trigger a userspace
operation.

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

diff --cc fs/fuse/file.c
Simple merge
Simple merge