diff options
author | 2004-05-18 08:45:28 +0000 | |
---|---|---|
committer | 2004-05-18 08:45:28 +0000 | |
commit | e2e4ac2c990a9b09740e4be6ae2de811154cc5b3 (patch) | |
tree | 8648e21445e9c3a905b64e7acb6f58500b03249d /kernel | |
parent | 43a20ad720402cf852fc8a6cdd20b98c74dcd816 (diff) |
added flush() call
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/file.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/file.c b/kernel/file.c index 2c9473f..c9a44fd 100644 --- a/kernel/file.c +++ b/kernel/file.c @@ -92,6 +92,22 @@ static int fuse_release(struct inode *inode, struct file *file) return 0; } +static int fuse_flush(struct file *file) +{ + struct inode *inode = file->f_dentry->d_inode; + struct fuse_conn *fc = INO_FC(inode); + struct fuse_in in = FUSE_IN_INIT; + struct fuse_out out = FUSE_OUT_INIT; + + in.h.opcode = FUSE_FLUSH; + in.h.ino = inode->i_ino; + request_send(fc, &in, &out); + if (out.h.error == -ENOSYS) + return 0; + else + return out.h.error; +} + static int fuse_fsync(struct file *file, struct dentry *de, int datasync) { struct inode *inode = de->d_inode; @@ -470,6 +486,7 @@ static struct file_operations fuse_file_operations = { .write = generic_file_write, .mmap = generic_file_mmap, .open = fuse_open, + .flush = fuse_flush, .release = fuse_release, .fsync = fuse_fsync, #ifdef KERNEL_2_6 |