]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
fs/9p: Add drop_inode 9p callback
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Mon, 28 Feb 2011 11:34:05 +0000 (17:04 +0530)
committerEric Van Hensbergen <ericvh@gmail.com>
Tue, 15 Mar 2011 14:57:40 +0000 (09:57 -0500)
We want to immediately drop the inode in non cached mode

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
fs/9p/vfs_super.c

index f84d625b87907452771da24c5f148568c4376ece..3fdaeb3c6eda12be4048b9b22117ca277d375fa4 100644 (file)
@@ -293,6 +293,20 @@ static int v9fs_sync_fs(struct super_block *sb, int wait)
        return p9_client_sync_fs(v9ses->root_fid);
 }
 
+static int v9fs_drop_inode(struct inode *inode)
+{
+       struct v9fs_session_info *v9ses;
+       v9ses = v9fs_inode2v9ses(inode);
+       if (v9ses->cache)
+               return generic_drop_inode(inode);
+       /*
+        * in case of non cached mode always drop the
+        * the inode because we want the inode attribute
+        * to always match that on the server.
+        */
+       return 1;
+}
+
 static const struct super_operations v9fs_super_ops = {
        .alloc_inode = v9fs_alloc_inode,
        .destroy_inode = v9fs_destroy_inode,
@@ -307,6 +321,7 @@ static const struct super_operations v9fs_super_ops_dotl = {
        .destroy_inode = v9fs_destroy_inode,
        .sync_fs = v9fs_sync_fs,
        .statfs = v9fs_statfs,
+       .drop_inode = v9fs_drop_inode,
        .evict_inode = v9fs_evict_inode,
        .show_options = generic_show_options,
        .umount_begin = v9fs_umount_begin,