fs/9p: set fs cache cookie in create path also
[pandora-kernel.git] / fs / 9p / vfs_inode.c
index b76a40b..95f5501 100644 (file)
@@ -292,10 +292,17 @@ struct inode *v9fs_get_inode(struct super_block *sb, int mode)
        case S_IFREG:
                if (v9fs_proto_dotl(v9ses)) {
                        inode->i_op = &v9fs_file_inode_operations_dotl;
-                       inode->i_fop = &v9fs_file_operations_dotl;
+                       if (v9ses->cache)
+                               inode->i_fop =
+                                       &v9fs_cached_file_operations_dotl;
+                       else
+                               inode->i_fop = &v9fs_file_operations_dotl;
                } else {
                        inode->i_op = &v9fs_file_inode_operations;
-                       inode->i_fop = &v9fs_file_operations;
+                       if (v9ses->cache)
+                               inode->i_fop = &v9fs_cached_file_operations;
+                       else
+                               inode->i_fop = &v9fs_file_operations;
                }
 
                break;
@@ -601,6 +608,10 @@ v9fs_vfs_create(struct inode *dir, struct dentry *dentry, int mode,
                }
 
                filp->private_data = fid;
+#ifdef CONFIG_9P_FSCACHE
+               if (v9ses->cache)
+                       v9fs_cache_inode_set_cookie(dentry->d_inode, filp);
+#endif
        } else
                p9_client_clunk(fid);