diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2005-09-09 13:10:30 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-09 14:03:45 -0700 |
commit | b6aeadeda22a9aa322fdfcd3f4c69ccf0da5cbdd (patch) | |
tree | 794afec0eeb13722550a97783ec0cfb95e5e83cb /fs/fuse/fuse_i.h | |
parent | 9e6268db496a2592e89457537ea54a496feabb77 (diff) | |
download | lwn-b6aeadeda22a9aa322fdfcd3f4c69ccf0da5cbdd.tar.gz lwn-b6aeadeda22a9aa322fdfcd3f4c69ccf0da5cbdd.zip |
[PATCH] FUSE - file operations
This patch adds the file operations of FUSE.
The following operations are added:
o open
o flush
o release
o fsync
o readpage
o commit_write
Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/fuse/fuse_i.h')
-rw-r--r-- | fs/fuse/fuse_i.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index 87d25b8f2dc1..b4aa8f7bc2c1 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h @@ -40,6 +40,15 @@ struct fuse_inode { unsigned long i_time; }; +/** FUSE specific file data */ +struct fuse_file { + /** Request reserved for flush and release */ + struct fuse_req *release_req; + + /** File handle used by userspace */ + u64 fh; +}; + /** One input argument of a request */ struct fuse_in_arg { unsigned size; @@ -136,6 +145,7 @@ struct fuse_req { /** Data for asynchronous requests */ union { struct fuse_forget_in forget_in; + struct fuse_release_in release_in; struct fuse_init_in_out init_in_out; } misc; @@ -200,6 +210,12 @@ struct fuse_conn { /** Connection failed (version mismatch) */ unsigned conn_error : 1; + /** Is fsync not implemented by fs? */ + unsigned no_fsync : 1; + + /** Is flush not implemented by fs? */ + unsigned no_flush : 1; + /** Backing dev info */ struct backing_dev_info bdi; }; @@ -264,6 +280,11 @@ void fuse_send_forget(struct fuse_conn *fc, struct fuse_req *req, unsigned long nodeid, u64 nlookup); /** + * Initialise file operations on a regular file + */ +void fuse_init_file_inode(struct inode *inode); + +/** * Initialise inode operations on regular files and special files */ void fuse_init_common(struct inode *inode); |