aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorGravatar Miklos Szeredi <miklos@szeredi.hu>2004-05-18 08:45:28 +0000
committerGravatar Miklos Szeredi <miklos@szeredi.hu>2004-05-18 08:45:28 +0000
commite2e4ac2c990a9b09740e4be6ae2de811154cc5b3 (patch)
tree8648e21445e9c3a905b64e7acb6f58500b03249d /kernel
parent43a20ad720402cf852fc8a6cdd20b98c74dcd816 (diff)
added flush() call
Diffstat (limited to 'kernel')
-rw-r--r--kernel/file.c17
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