|| ||Tejun Heo <email@example.com> |
|| ||firstname.lastname@example.org, email@example.com,
|| ||[PATCHSET] CUSE: implement CUSE, take #3 |
|| ||Tue, 14 Apr 2009 10:54:48 +0900|
|| ||Article, Thread
This is the third take of implement-CUSE patchset. Sorry about the
huge delay. :-)
Changes from the last take[L] are...
* Rather large FUSE update to make inode, superblock and mnt optional.
* CUSE no longer creates its superblock or mount. It simply sets cdev
file->private_data to fuse_file and operates on it.
* cdev lifetime handling fixed. CUSE cdev now atomically looks up
matching device (connection) like other cdevs do.
* CUSE init protocal updated. An additional request CUSE_INIT_DONE is
sent after successful creation of devices. This is to allow
userland server to synchronize init completion.
This patchset contains the following six patches.
0001 is misc preparation. 0002 updates fuse file handling operations
such that it primarily operations on fuse_file instead of vfs objects.
This patch is rather huge but I couldn't think of a good meaningful
way to chop it down further. As scary as it looks, it should have
zero functional difference and most changes are mechanical.
0003 makes fuse_file->fi (added by 0002) optional so that fuse_file
can be used separately.
0004-0005 prepares for CUSE implementation and 0006 does it.
I didn't replace the kthread init helper with req->end() callback for
two reasons. Firstly, init involves issuing two commands - FUSE_INIT
and CUSE_INIT. Chaning init sequence via req->end() would require
another split in the init sequence. Secondly, the second command
would have to be issued from ->end(), which is just hairy. I think
doing the latter part of initialization in kthread is better here.
This patchset is on top of the current linus#master and available in the following git tree.
fs/Kconfig | 10
fs/fuse/Makefile | 1
fs/fuse/cuse.c | 675 ++++++++++++++++++++++++++++++++++++++++++++++++++
fs/fuse/dev.c | 9
fs/fuse/dir.c | 97 ++++---
fs/fuse/file.c | 613 +++++++++++++++++++++++----------------------
fs/fuse/fuse_i.h | 100 ++++++-
fs/fuse/inode.c | 54 ++--
include/linux/cuse.h | 49 +++
include/linux/fuse.h | 2
include/linux/magic.h | 5
11 files changed, 1237 insertions(+), 378 deletions(-)
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to firstname.lastname@example.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/