diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2004-10-19 22:01:21 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2004-10-19 22:01:21 +0000 |
commit | a2c5e56bc066ba01b5f17e528b92c4d878226b25 (patch) | |
tree | 1741a3ee9a8c359755b1f265662e5ea7ef3902d7 /kernel | |
parent | 127d49b0ef823cd8d7e6b83648f982566eab0016 (diff) |
fix
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/dev.c | 8 | ||||
-rw-r--r-- | kernel/file.c | 10 |
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; |