aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_lowlevel.c
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2008-02-08 11:41:41 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2008-02-08 11:41:41 +0000
commitb20d88bbbc6e5ae67f0c99595859fd653949a3aa (patch)
tree218bf2134c1af0c5a9e3c652310c8721f48d6a8f /lib/fuse_lowlevel.c
parent30823693d6489a9638dbcc1a02600d0d2119d3ea (diff)
downloadlibfuse-b20d88bbbc6e5ae67f0c99595859fd653949a3aa.tar.gz
Update kernel interface to 7.9
Diffstat (limited to 'lib/fuse_lowlevel.c')
-rw-r--r--lib/fuse_lowlevel.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c
index 5c9dc56..ed885fd 100644
--- a/lib/fuse_lowlevel.c
+++ b/lib/fuse_lowlevel.c
@@ -629,14 +629,20 @@ static void do_write(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
{
struct fuse_write_in *arg = (struct fuse_write_in *) inarg;
struct fuse_file_info fi;
+ char *param;
memset(&fi, 0, sizeof(fi));
fi.fh = arg->fh;
fi.fh_old = fi.fh;
fi.writepage = arg->write_flags & 1;
+ if (req->f->conn.proto_minor < 9)
+ param = ((char *) arg) + FUSE_COMPAT_WRITE_IN_SIZE;
+ else
+ param = PARAM(arg);
+
if (req->f->op.write)
- req->f->op.write(req, nodeid, PARAM(arg), arg->size,
+ req->f->op.write(req, nodeid, param, arg->size,
arg->offset, &fi);
else
fuse_reply_err(req, ENOSYS);