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/v9fs_vfs.h | |
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/v9fs_vfs.h')
-rw-r--r-- | fs/9p/v9fs_vfs.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/9p/v9fs_vfs.h b/fs/9p/v9fs_vfs.h index f0c7de78e205..3a7560e35865 100644 --- a/fs/9p/v9fs_vfs.h +++ b/fs/9p/v9fs_vfs.h | |||
@@ -44,7 +44,13 @@ extern const struct file_operations v9fs_dir_operations; | |||
44 | extern const struct dentry_operations v9fs_dentry_operations; | 44 | extern const struct dentry_operations v9fs_dentry_operations; |
45 | extern const struct dentry_operations v9fs_cached_dentry_operations; | 45 | extern const struct dentry_operations v9fs_cached_dentry_operations; |
46 | 46 | ||
47 | #ifdef CONFIG_9P_FSCACHE | ||
48 | struct inode *v9fs_alloc_inode(struct super_block *sb); | ||
49 | void v9fs_destroy_inode(struct inode *inode); | ||
50 | #endif | ||
51 | |||
47 | struct inode *v9fs_get_inode(struct super_block *sb, int mode); | 52 | struct inode *v9fs_get_inode(struct super_block *sb, int mode); |
53 | void v9fs_clear_inode(struct inode *inode); | ||
48 | ino_t v9fs_qid2ino(struct p9_qid *qid); | 54 | ino_t v9fs_qid2ino(struct p9_qid *qid); |
49 | void v9fs_stat2inode(struct p9_wstat *, struct inode *, struct super_block *); | 55 | void v9fs_stat2inode(struct p9_wstat *, struct inode *, struct super_block *); |
50 | int v9fs_dir_release(struct inode *inode, struct file *filp); | 56 | int v9fs_dir_release(struct inode *inode, struct file *filp); |