From 9478e86a5487b7f0b5ce4c4d7f4d7a9283562058 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Wed, 11 Dec 2002 09:50:26 +0000 Subject: release() changes --- lib/fuse.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'lib/fuse.c') diff --git a/lib/fuse.c b/lib/fuse.c index 4919965..efe9e97 100644 --- a/lib/fuse.c +++ b/lib/fuse.c @@ -758,19 +758,20 @@ static void do_open(struct fuse *f, struct fuse_in_header *in, if(path != NULL) { /* The open syscall was interrupted, so it must be cancelled */ if(res == 0 && res2 == -ENOENT && f->op.release) - f->op.release(path); + f->op.release(path, arg->flags); free(path); } } -static void do_release(struct fuse *f, struct fuse_in_header *in) +static void do_release(struct fuse *f, struct fuse_in_header *in, + struct fuse_open_in *arg) { char *path; path = get_path(f, in->ino); if(path != NULL) { if(f->op.release) - f->op.release(path); + f->op.release(path, arg->flags); free(path); } } @@ -943,6 +944,10 @@ void __fuse_process_cmd(struct fuse *f, struct fuse_cmd *cmd) do_open(f, in, (struct fuse_open_in *) inarg); break; + case FUSE_RELEASE: + do_release(f, in, (struct fuse_open_in *) inarg); + break; + case FUSE_READ: do_read(f, in, (struct fuse_read_in *) inarg); break; @@ -955,12 +960,7 @@ void __fuse_process_cmd(struct fuse *f, struct fuse_cmd *cmd) do_statfs(f, in); break; - case FUSE_RELEASE: - do_release(f, in); - break; - default: - fprintf(stderr, "Operation %i not implemented\n", in->opcode); send_reply(f, in, -ENOSYS, NULL, 0); } -- cgit v1.2.3