aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2004-11-20 16:10:30 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2004-11-20 16:10:30 +0000
commit72cf5c9d9eced708d212db49a9ae9f261b8cfcd9 (patch)
tree0cbf4df33641746d92d847ae25f2c59f1a22feb6 /kernel
parent256739a410f38f424e30011e329e41647f3cd9ff (diff)
downloadlibfuse-72cf5c9d9eced708d212db49a9ae9f261b8cfcd9.tar.gz
fix
Diffstat (limited to 'kernel')
-rw-r--r--kernel/file.c12
-rw-r--r--kernel/fuse_i.h1
-rw-r--r--kernel/linux/fuse.h9
3 files changed, 7 insertions, 15 deletions
diff --git a/kernel/file.c b/kernel/file.c
index 03e870b..c48615b 100644
--- a/kernel/file.c
+++ b/kernel/file.c
@@ -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);
diff --git a/kernel/fuse_i.h b/kernel/fuse_i.h
index ce35ee4..e454fd0 100644
--- a/kernel/fuse_i.h
+++ b/kernel/fuse_i.h
@@ -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;
diff --git a/kernel/linux/fuse.h b/kernel/linux/fuse.h
index 8e62f9f..f5f7405 100644
--- a/kernel/linux/fuse.h
+++ b/kernel/linux/fuse.h
@@ -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:
- */