public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Tejun Heo <tj@kernel.org>
To: linux-kernel@vger.kernel.org, fuse-devel@lists.sourceforge.net,
	miklos@szeredi.hu
Subject: [PATCHSET] CUSE: implement CUSE, take #3
Date: Tue, 14 Apr 2009 10:54:48 +0900	[thread overview]
Message-ID: <1239674094-30894-1-git-send-email-tj@kernel.org> (raw)

Hello, Miklos.

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-FUSE-misc-cleanups.patch
  0002-FUSE-use-fuse-objects-as-the-main-objects-in-file-h.patch
  0003-FUSE-make-ff-fi-optional.patch
  0004-FUSE-update-fuse_conn_init-and-separate-out-fuse_.patch
  0005-FUSE-export-symbols-to-be-used-by-CUSE.patch
  0006-CUSE-implement-CUSE-Character-device-in-Userspace.patch

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[1] and available in the following git tree.

  git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git cuse

diffstat follows.

 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(-)

Thanks.

--
tejun

[L] http://thread.gmane.org/gmane.linux.kernel/759831
[1] 80a04d3f2f94fb68b5df05e3ac6697130bc3467a

             reply	other threads:[~2009-04-14  1:58 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-14  1:54 Tejun Heo [this message]
2009-04-14  1:54 ` [PATCH 1/6] FUSE: misc cleanups Tejun Heo
2009-04-14  1:54 ` [PATCH 2/6] FUSE: use fuse objects as the main objects in file handling functions Tejun Heo
2009-04-14  1:54 ` [PATCH 3/6] FUSE: make ff->fi optional Tejun Heo
2009-04-14  1:54 ` [PATCH 4/6] FUSE: update fuse_conn_init() and separate out fuse_conn_kill() Tejun Heo
2009-04-14  1:54 ` [PATCH 5/6] FUSE: export symbols to be used by CUSE Tejun Heo
2009-04-14  1:54 ` [PATCH 6/6] CUSE: implement CUSE - Character device in Userspace Tejun Heo
2009-04-21 16:43 ` [PATCHSET] CUSE: implement CUSE, take #3 Tejun Heo
2009-04-22 11:39 ` Miklos Szeredi
2009-04-23  0:09   ` Tejun Heo
2009-04-23 10:08     ` Miklos Szeredi
2009-04-23 10:32       ` Tejun Heo
2009-04-28 15:43         ` Miklos Szeredi
2009-04-30  2:10           ` Tejun Heo
2009-04-30  2:13             ` Tejun Heo
2009-05-06  9:33               ` Miklos Szeredi
2009-05-08 23:35                 ` Tejun Heo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1239674094-30894-1-git-send-email-tj@kernel.org \
    --to=tj@kernel.org \
    --cc=fuse-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox