summaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsfs.c
diff options
context:
space:
mode:
authorSuresh Jayaraman2010-07-05 14:42:45 +0200
committerSteve French2010-08-02 14:40:36 +0200
commit9451a9a52f91a4c171cfaca2f6d7a2ce91867b8d (patch)
treee447d252996e554a053890a75b55456b9926d602 /fs/cifs/cifsfs.c
parentcifs: define superblock-level cache index objects and register them (diff)
downloadkernel-qcow2-linux-9451a9a52f91a4c171cfaca2f6d7a2ce91867b8d.tar.gz
kernel-qcow2-linux-9451a9a52f91a4c171cfaca2f6d7a2ce91867b8d.tar.xz
kernel-qcow2-linux-9451a9a52f91a4c171cfaca2f6d7a2ce91867b8d.zip
cifs: define inode-level cache object and register them
Define inode-level data storage objects (managed by cifsInodeInfo structs). Each inode-level object is created in a super-block level object and is itself a data storage object in to which pages from the inode are stored. The inode object is keyed by UniqueId. The coherency data being used is LastWriteTime, LastChangeTime and end of file reported by the server. Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifsfs.c')
-rw-r--r--fs/cifs/cifsfs.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 24d7f4ab3b65..8a2cf129e535 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -330,6 +330,12 @@ cifs_destroy_inode(struct inode *inode)
}
static void
+cifs_clear_inode(struct inode *inode)
+{
+ cifs_fscache_release_inode_cookie(inode);
+}
+
+static void
cifs_show_address(struct seq_file *s, struct TCP_Server_Info *server)
{
seq_printf(s, ",addr=");
@@ -490,6 +496,7 @@ static const struct super_operations cifs_super_ops = {
.alloc_inode = cifs_alloc_inode,
.destroy_inode = cifs_destroy_inode,
.drop_inode = cifs_drop_inode,
+ .clear_inode = cifs_clear_inode,
/* .delete_inode = cifs_delete_inode, */ /* Do not need above
function unless later we add lazy close of inodes or unless the
kernel forgets to call us with the same number of releases (closes)