fuse: add members to struct fuse_file
Miklos Szeredi [Tue, 28 Apr 2009 14:56:36 +0000 (16:56 +0200)]
Add new members ->fc and ->nodeid to struct fuse_file.  This will aid
in converting functions for use by CUSE, where the inode is not owned
by a fuse filesystem.

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>

fs/fuse/file.c
fs/fuse/fuse_i.h

index b83d7d8..3be0301 100644 (file)
@@ -54,6 +54,7 @@ struct fuse_file *fuse_file_alloc(struct fuse_conn *fc)
        if (unlikely(!ff))
                return NULL;
 
+       ff->fc = fc;
        ff->reserved_req = fuse_request_alloc();
        if (unlikely(!ff->reserved_req)) {
                kfree(ff);
@@ -111,6 +112,7 @@ void fuse_finish_open(struct inode *inode, struct file *file,
        if (outarg->open_flags & FOPEN_NONSEEKABLE)
                nonseekable_open(inode, file);
        ff->fh = outarg->fh;
+       ff->nodeid = get_node_id(inode);
        file->private_data = fuse_file_get(ff);
 }
 
index 146317f..4469d99 100644 (file)
@@ -97,8 +97,13 @@ struct fuse_inode {
        struct list_head writepages;
 };
 
+struct fuse_conn;
+
 /** FUSE specific file data */
 struct fuse_file {
+       /** Fuse connection for this file */
+       struct fuse_conn *fc;
+
        /** Request reserved for flush and release */
        struct fuse_req *reserved_req;
 
@@ -108,6 +113,9 @@ struct fuse_file {
        /** File handle used by userspace */
        u64 fh;
 
+       /** Node id of this file */
+       u64 nodeid;
+
        /** Refcount */
        atomic_t count;
 
@@ -185,8 +193,6 @@ enum fuse_req_state {
        FUSE_REQ_FINISHED
 };
 
-struct fuse_conn;
-
 /**
  * A request to the client
  */