diff options
author | Abhishek Kulkarni <adkulkar@umail.iu.edu> | 2009-09-23 14:00:27 -0400 |
---|---|---|
committer | Eric Van Hensbergen <ericvh@strongmad.austin.ibm.com> | 2009-09-23 14:03:46 -0400 |
commit | 60e78d2c993e58d890596d951fff77d5965adcd6 (patch) | |
tree | 3d53ed7254c613ef8d8de36fdceda25bc493f4f7 /fs/9p/vfs_super.c | |
parent | 637d020a02cd734bf27acfc56c6d942cddd9eb80 (diff) |
9p: Add fscache support to 9p
This patch adds a persistent, read-only caching facility for
9p clients using the FS-Cache caching backend.
When the fscache facility is enabled, each inode is associated
with a corresponding vcookie which is an index into the FS-Cache
indexing tree. The FS-Cache indexing tree is indexed at 3 levels:
- session object associated with each mount.
- inode/vcookie
- actual data (pages)
A cache tag is chosen randomly for each session. These tags can
be read off /sys/fs/9p/caches and can be passed as a mount-time
parameter to re-attach to the specified caching session.
Signed-off-by: Abhishek Kulkarni <adkulkar@umail.iu.edu>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Diffstat (limited to 'fs/9p/vfs_super.c')
-rw-r--r-- | fs/9p/vfs_super.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c index 8961f1a8f668..14a86448572c 100644 --- a/fs/9p/vfs_super.c +++ b/fs/9p/vfs_super.c | |||
@@ -44,21 +44,9 @@ | |||
44 | #include "v9fs_vfs.h" | 44 | #include "v9fs_vfs.h" |
45 | #include "fid.h" | 45 | #include "fid.h" |
46 | 46 | ||
47 | static void v9fs_clear_inode(struct inode *); | ||
48 | static const struct super_operations v9fs_super_ops; | 47 | static const struct super_operations v9fs_super_ops; |
49 | 48 | ||
50 | /** | 49 | /** |
51 | * v9fs_clear_inode - release an inode | ||
52 | * @inode: inode to release | ||
53 | * | ||
54 | */ | ||
55 | |||
56 | static void v9fs_clear_inode(struct inode *inode) | ||
57 | { | ||
58 | filemap_fdatawrite(inode->i_mapping); | ||
59 | } | ||
60 | |||
61 | /** | ||
62 | * v9fs_set_super - set the superblock | 50 | * v9fs_set_super - set the superblock |
63 | * @s: super block | 51 | * @s: super block |
64 | * @data: file system specific data | 52 | * @data: file system specific data |
@@ -220,6 +208,10 @@ v9fs_umount_begin(struct super_block *sb) | |||
220 | } | 208 | } |
221 | 209 | ||
222 | static const struct super_operations v9fs_super_ops = { | 210 | static const struct super_operations v9fs_super_ops = { |
211 | #ifdef CONFIG_9P_FSCACHE | ||
212 | .alloc_inode = v9fs_alloc_inode, | ||
213 | .destroy_inode = v9fs_destroy_inode, | ||
214 | #endif | ||
223 | .statfs = simple_statfs, | 215 | .statfs = simple_statfs, |
224 | .clear_inode = v9fs_clear_inode, | 216 | .clear_inode = v9fs_clear_inode, |
225 | .show_options = generic_show_options, | 217 | .show_options = generic_show_options, |