diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2006-04-11 21:16:51 +0200 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2006-04-11 21:16:51 +0200 |
commit | 56cf34ff0795692327234963dcdcc2cdeec2bb3d (patch) | |
tree | d7b4b736654176c361c5e78d0a8a8ef6dca9e976 /fs/fuse | |
parent | [fuse] Don't init request twice (diff) | |
download | linux-56cf34ff0795692327234963dcdcc2cdeec2bb3d.tar.xz linux-56cf34ff0795692327234963dcdcc2cdeec2bb3d.zip |
[fuse] Direct I/O should not use fuse_reset_request
It's cleaner to allocate a new request, otherwise the uid/gid/pid
fields of the request won't be filled in.
Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Diffstat (limited to 'fs/fuse')
-rw-r--r-- | fs/fuse/file.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/fuse/file.c b/fs/fuse/file.c index e4f041a11bb5..fc342cf7c2cc 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -1,6 +1,6 @@ /* FUSE: Filesystem in Userspace - Copyright (C) 2001-2005 Miklos Szeredi <miklos@szeredi.hu> + Copyright (C) 2001-2006 Miklos Szeredi <miklos@szeredi.hu> This program can be distributed under the terms of the GNU GPL. See the file COPYING. @@ -565,8 +565,12 @@ static ssize_t fuse_direct_io(struct file *file, const char __user *buf, buf += nres; if (nres != nbytes) break; - if (count) - fuse_reset_request(req); + if (count) { + fuse_put_request(fc, req); + req = fuse_get_req(fc); + if (IS_ERR(req)) + break; + } } fuse_put_request(fc, req); if (res > 0) { |