From: Tejun Heo <tj@kernel.org>
To: linux-kernel@vger.kernel.org, fuse-devel@lists.sourceforge.net,
miklos@szeredi.hu, akpm@linux-foundation.org, npiggin@suse.de
Subject: [PATCHSET] FUSE: implement direct mmap
Date: Thu, 20 Nov 2008 23:52:14 +0900 [thread overview]
Message-ID: <1227192740-10532-1-git-send-email-tj@kernel.org> (raw)
Hello,
This is the first take of fuse-implement-direct-mmap patchset. This
patchset implements direct mmap support for FUSE (and CUSE). Each
direct mmap area is backed by anonymous mapping (shmem_file) and the
FUSE server can decide how they are shared.
mmap request is handled in two steps. MMAP first queries the server
whether it wants to share the mapping with an existing one or create a
new one, and if so, with which flags. MMAP_COMMIT notifies the server
the result of mmap and if successful the fd the server can use to
access the mmap region.
This patchset contains the following six patches.
0001-mmap-don-t-assume-f_op-mmap-doesn-t-change-vma.patch
0002-fdtable-export-alloc_fd.patch
0003-FUSE-don-t-let-fuse_req-end-put-the-base-referen.patch
0004-FUSE-make-request_wait_answer-wait-for-end-co.patch
0005-FUSE-implement-fuse_req-prep.patch
0006-FUSE-implement-direct-mmap.patch
0001-0002 update mm and fdtable for following FUSE changes. 0003-0005
update fuse_req->end() handling and add ->prep(). 0006 implements
direct mmap.
Direct mmap implementation jumps through a few hoops to override
vma->vm_file with shmem_file. It would be great if there's a cleaner
way to achieve this. For details, please take a look at 0006.
Nick, can you please verify that 0001 doesn't break anything and
replacing vma->vm_file in ->mmap() is okay?
Andrew, would 0002 be okay?
Thanks.
This patchset is on top of
master (ee2f6cc7f9ea2542ad46070ed62ba7aa04d08871)
+ [1] poll-allow-f_op_poll-to-sleep-take-2
+ [2] add-cdev_release-and-convert-cdev_alloc-to-use-it
+ [3] extend-FUSE patchset, take #2
+ [4] implement-CUSE patchset, take #2
This patchset is also available in the following git tree.
http://git.kernel.org/?p=linux/kernel/git/tj/misc.git;a=shortlog;h=fuse-mmap
git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git fuse-mmap
and contains the following changes.
fs/file.c | 1
fs/fuse/cuse.c | 6
fs/fuse/dev.c | 75 ++++++---
fs/fuse/file.c | 412 ++++++++++++++++++++++++++++++++++++++++++++++++++-
fs/fuse/fuse_i.h | 19 ++
fs/fuse/inode.c | 1
include/linux/fuse.h | 47 +++++
mm/mmap.c | 1
8 files changed, 533 insertions(+), 29 deletions(-)
--
tejun
[1] http://lkml.org/lkml/2008/11/20/161
[2] http://article.gmane.org/gmane.linux.kernel/727133
[3] http://lkml.org/lkml/2008/11/20/171
[4] http://lkml.org/lkml/2008/11/20/179
next reply other threads:[~2008-11-20 15:03 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-20 14:52 Tejun Heo [this message]
2008-11-20 14:52 ` [PATCH 1/6] mmap: don't assume f_op->mmap() doesn't change vma->vm_file Tejun Heo
2008-11-20 14:52 ` [PATCH 2/6] fdtable: export alloc_fd() Tejun Heo
2008-11-20 14:52 ` [PATCH 3/6] FUSE: don't let fuse_req->end() put the base reference Tejun Heo
2008-11-20 14:52 ` [PATCH 4/6] FUSE: make request_wait_answer() wait for ->end() completion Tejun Heo
2008-11-20 14:52 ` [PATCH 5/6] FUSE: implement fuse_req->prep() Tejun Heo
2008-11-20 14:52 ` [PATCH 6/6] FUSE: implement direct mmap 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=1227192740-10532-1-git-send-email-tj@kernel.org \
--to=tj@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=fuse-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=npiggin@suse.de \
/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