fix
authorMiklos Szeredi <miklos@szeredi.hu>
Sat, 20 Nov 2004 16:10:30 +0000 (16:10 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Sat, 20 Nov 2004 16:10:30 +0000 (16:10 +0000)
kernel/file.c
kernel/fuse_i.h
kernel/linux/fuse.h

index 03e870be976148daed51a35af7db28b367bb7658..c48615b44b253c9440bb3d8a9d5e78185c5fd9d1 100644 (file)
@@ -118,9 +118,9 @@ static int fuse_release(struct inode *inode, struct file *file)
 {
        struct fuse_conn *fc = INO_FC(inode);
        struct fuse_inode *fi = INO_FI(inode);
-       struct fuse_release_in *inarg;
        struct fuse_file *ff = file->private_data;
        struct fuse_req *req = ff->release_req;
+       struct fuse_release_in inarg;
        
        down(&inode->i_sem);
        if (file->f_mode & FMODE_WRITE)
@@ -132,14 +132,14 @@ static int fuse_release(struct inode *inode, struct file *file)
                up_write(&fi->write_sem);
        }
 
-       inarg = &req->misc.release_in;
-       inarg->fh = ff->fh;
-       inarg->flags = file->f_flags & ~O_EXCL;
+       memset(&inarg, 0, sizeof(inarg));
+       inarg.fh = ff->fh;
+       inarg.flags = file->f_flags & ~O_EXCL;
        req->in.h.opcode = FUSE_RELEASE;
        req->in.h.nodeid = fi->nodeid;
        req->in.numargs = 1;
-       req->in.args[0].size = sizeof(struct fuse_release_in);
-       req->in.args[0].value = inarg;
+       req->in.args[0].size = sizeof(inarg);
+       req->in.args[0].value = &inarg;
        request_send(fc, req);
        fuse_put_request(fc, req);
        kfree(ff);
index ce35ee40c276d589cb234c9f8a0a868ee9e55ff2..e454fd0447e0caaea327aacd01213e6ff82391a2 100644 (file)
@@ -193,7 +193,6 @@ struct fuse_req {
                        
                } write;
                struct fuse_read_in read_in;
-               struct fuse_release_in release_in;
                struct fuse_forget_in forget_in;
        } misc;
 
index 8e62f9f5de88e7de07c667c3fdacbef78e3a8fe9..f5f7405be244848cb0ab5648e67cbe43233f859f 100644 (file)
@@ -76,7 +76,7 @@ enum fuse_opcode {
        FUSE_READ          = 15,
        FUSE_WRITE         = 16,
        FUSE_STATFS        = 17,
-       FUSE_RELEASE       = 18, /* no reply */
+       FUSE_RELEASE       = 18,
        FUSE_INVALIDATE    = 19, /* user initiated */
        FUSE_FSYNC         = 20,
        FUSE_SETXATTR      = 21,
@@ -231,10 +231,3 @@ struct fuse_dirent {
 #define FUSE_DIRENT_ALIGN(x) (((x) + sizeof(long) - 1) & ~(sizeof(long) - 1))
 #define FUSE_DIRENT_SIZE(d) \
        FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
-
-/* 
- * Local Variables:
- * indent-tabs-mode: t
- * c-basic-offset: 8
- * End:
- */