]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/9p/v9fs.h
fs/9p: Always ask new inode in create
[karo-tx-linux.git] / fs / 9p / v9fs.h
index 5d7392ead24b231b280acd7052cdf6b5dab32a1f..e78956cbd7021c81a50d7bd6e9220ffa9623bb22 100644 (file)
@@ -153,13 +153,13 @@ extern void v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd,
                        void *p);
 extern struct inode *v9fs_inode_from_fid(struct v9fs_session_info *v9ses,
                                         struct p9_fid *fid,
-                                        struct super_block *sb);
+                                        struct super_block *sb, int new);
 extern const struct inode_operations v9fs_dir_inode_operations_dotl;
 extern const struct inode_operations v9fs_file_inode_operations_dotl;
 extern const struct inode_operations v9fs_symlink_inode_operations_dotl;
 extern struct inode *v9fs_inode_from_fid_dotl(struct v9fs_session_info *v9ses,
                                              struct p9_fid *fid,
-                                             struct super_block *sb);
+                                             struct super_block *sb, int new);
 
 /* other default globals */
 #define V9FS_PORT      564
@@ -201,8 +201,27 @@ v9fs_get_inode_from_fid(struct v9fs_session_info *v9ses, struct p9_fid *fid,
                        struct super_block *sb)
 {
        if (v9fs_proto_dotl(v9ses))
-               return v9fs_inode_from_fid_dotl(v9ses, fid, sb);
+               return v9fs_inode_from_fid_dotl(v9ses, fid, sb, 0);
        else
-               return v9fs_inode_from_fid(v9ses, fid, sb);
+               return v9fs_inode_from_fid(v9ses, fid, sb, 0);
 }
+
+/**
+ * v9fs_get_new_inode_from_fid - Helper routine to populate an inode by
+ * issuing a attribute request
+ * @v9ses: session information
+ * @fid: fid to issue attribute request for
+ * @sb: superblock on which to create inode
+ *
+ */
+static inline struct inode *
+v9fs_get_new_inode_from_fid(struct v9fs_session_info *v9ses, struct p9_fid *fid,
+                           struct super_block *sb)
+{
+       if (v9fs_proto_dotl(v9ses))
+               return v9fs_inode_from_fid_dotl(v9ses, fid, sb, 1);
+       else
+               return v9fs_inode_from_fid(v9ses, fid, sb, 1);
+}
+
 #endif