From: David Howells <dhowells@redhat.com>
To: torvalds@osdl.org, akpm@osdl.org
Cc: linux-kernel@vger.kernel.org, steved@redhat.com, dwmw2@redhat.com
Subject: [PATCH] CacheFS - general filesystem cache
Date: Fri, 27 Aug 2004 01:23:03 +0100 [thread overview]
Message-ID: <17777.1093566183@redhat.com> (raw)
Hi Linus, Andrew,
I've packaged my generic filesystem cache filesystem into patches and also
produced patches for my AFS filesystem to use it. Work is also in progress to
alter the NFS client use this interface too, and I think the ISO9660
filesystem could also benefit.
I've put a tarball of them on my Red Hat webpage because one of them is rather
large. If you grab:
http://people.redhat.com/~dhowells/cachefs/cachefs-patches.tar.bz2
You'll find the following patches contained therein:
(1) cachefs-nullfileptr-2681mm4.diff
Fix a bug introduced into do_generic_mapping_read() by which a file
pointer becomes required. I had arranged things so that it was
optional so that I could call it directly on an inode.
(2) cachefs-rastateinit-2681mm4.diff
Revert the change made to file_ra_state_init() that removed the symbol
export that I'd put in, and also make it fully initialise the state
again.
This was also done so that do_generic_mapping_read() could be called
directly on an inode.
(3) cachefs-fs-2681mm4.diff
The cachefs filesystem source and interface header file.
(4) cachefs-doc-2681mm4.diff
Documentation about using cachefs.
(5) cachefs-wppageop-2681mm4.diff
Add a notification operation to the address space that gets invoked
when a read-only protected page is about to be made writable. I've
shown this to Rik van Riel who seems happy with it.
Using a combination of (5) and (6), I can have cachefs write a netfs
page into the cache in the background whilst the netfs readpage
completes and passes the now unlocked page back to userspace.
Previously, the netfs readpage function had to be synchronous with
respect to writing the page to disc. Now it can use this callback and
prepare_write() to synchronise upon the page being modified in the
page cache before it gets DMA'd to cachefs's disc block.
David Woodhouse is also interested in using this to do lazy
reservations in JFFS2 shared writable mapping support.
(6) cachefs-fspagesync-2681mm4.diff
This adds another page flag for intra-filesystem synchronisation, to
operate in a manner similar to PG_writeback.
I've made my AFS client use this to indicate that a page has now been
written to the backing cache and can now be safely modified.
(7) cachefs-afs-2681mm4.diff
This changes my AFS client so that it can make use of cachefs.
Signed-Off-By: David Howells <dhowells@redhat.com>
I've also put a utility on my webpage for dumping the cachefs update journal
contents:
http://people.redhat.com/~dhowells/cachefs/dump-journal.c
It just needs the fs/cachefs/cachefs-int.h header file placing in the same
directory to compile.
David
next reply other threads:[~2004-08-27 0:30 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-27 0:23 David Howells [this message]
2004-08-27 0:42 ` [PATCH] CacheFS - general filesystem cache Linus Torvalds
2004-08-27 10:24 ` David Howells
2004-08-27 0:53 ` Jeff Garzik
[not found] ` <20040827054813.GG2030@kalmia.hozed.org>
2004-09-01 21:19 ` David Howells
2004-08-27 10:28 ` Christoph Hellwig
2004-08-27 15:47 ` Martin J. Bligh
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=17777.1093566183@redhat.com \
--to=dhowells@redhat.com \
--cc=akpm@osdl.org \
--cc=dwmw2@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=steved@redhat.com \
--cc=torvalds@osdl.org \
/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