All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.