aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorGravatar Miklos Szeredi <miklos@szeredi.hu>2004-10-19 22:01:21 +0000
committerGravatar Miklos Szeredi <miklos@szeredi.hu>2004-10-19 22:01:21 +0000
commita2c5e56bc066ba01b5f17e528b92c4d878226b25 (patch)
tree1741a3ee9a8c359755b1f265662e5ea7ef3902d7 /kernel
parent127d49b0ef823cd8d7e6b83648f982566eab0016 (diff)
fix
Diffstat (limited to 'kernel')
-rw-r--r--kernel/dev.c8
-rw-r--r--kernel/file.c10
2 files changed, 12 insertions, 6 deletions
diff --git a/kernel/dev.c b/kernel/dev.c
index ac856cb..c783ead 100644
--- a/kernel/dev.c
+++ b/kernel/dev.c
@@ -121,6 +121,9 @@ static struct fuse_req *do_get_request(struct fuse_conn *fc)
list_del_init(&req->list);
spin_unlock(&fuse_lock);
fuse_reset_request(req);
+ req->in.h.uid = current->fsuid;
+ req->in.h.gid = current->fsgid;
+ req->in.h.pid = current->pid;
return req;
}
@@ -132,9 +135,6 @@ struct fuse_req *fuse_get_request(struct fuse_conn *fc)
return NULL;
req = do_get_request(fc);
- req->in.h.uid = current->fsuid;
- req->in.h.gid = current->fsgid;
- req->in.h.pid = current->pid;
return req;
}
@@ -146,8 +146,6 @@ struct fuse_req *fuse_get_request_nonblock(struct fuse_conn *fc)
return NULL;
req = do_get_request(fc);
- req->in.h.uid = current->fsuid;
- req->in.h.gid = current->fsgid;
return req;
}
diff --git a/kernel/file.c b/kernel/file.c
index ec2e40c..91fd07b 100644
--- a/kernel/file.c
+++ b/kernel/file.c
@@ -598,6 +598,11 @@ static ssize_t fuse_send_write(struct fuse_req *req, int writepage,
inarg.size = count;
req->in.h.opcode = FUSE_WRITE;
req->in.h.ino = inode->i_ino;
+ if (writepage) {
+ req->in.h.uid = 0;
+ req->in.h.gid = 0;
+ req->in.h.pid = 0;
+ }
req->in.numargs = 2;
req->in.args[0].size = sizeof(inarg);
req->in.args[0].value = &inarg;
@@ -740,7 +745,7 @@ static void send_write_nonblock(struct fuse_req *req, struct inode *inode,
struct fuse_write_in *inarg;
struct fuse_file *ff;
char *buffer;
-
+
BUG_ON(list_empty(&fi->write_files));
ff = list_entry(fi->write_files.next, struct fuse_file, ff_list);
@@ -752,6 +757,9 @@ static void send_write_nonblock(struct fuse_req *req, struct inode *inode,
inarg->size = count;
req->in.h.opcode = FUSE_WRITE;
req->in.h.ino = inode->i_ino;
+ req->in.h.uid = 0;
+ req->in.h.gid = 0;
+ req->in.h.pid = 0;
req->in.numargs = 2;
req->in.args[0].size = sizeof(struct fuse_write_in);
req->in.args[0].value = inarg;