aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/inode.c
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2005-11-28 13:27:10 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2005-11-28 13:27:10 +0000
commit2b4781100812d42e704c39c51303cd28ad3f9aa6 (patch)
treeb0d0177640f15ff7425b33f69fa135cc18c39c7d /kernel/inode.c
parenta90b7349306f10b2a9bde9a2537bf9a852452da4 (diff)
downloadlibfuse-2b4781100812d42e704c39c51303cd28ad3f9aa6.tar.gz
a whole lot of crap
Diffstat (limited to 'kernel/inode.c')
-rw-r--r--kernel/inode.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/inode.c b/kernel/inode.c
index 142991c..f2d6768 100644
--- a/kernel/inode.c
+++ b/kernel/inode.c
@@ -290,6 +290,7 @@ static void convert_fuse_statfs(struct kstatfs *stbuf, struct fuse_kstatfs *attr
{
stbuf->f_type = FUSE_SUPER_MAGIC;
stbuf->f_bsize = attr->bsize;
+ stbuf->f_frsize = attr->frsize;
stbuf->f_blocks = attr->blocks;
stbuf->f_bfree = attr->bfree;
stbuf->f_bavail = attr->bavail;
@@ -310,10 +311,12 @@ static int fuse_statfs(struct super_block *sb, struct kstatfs *buf)
if (!req)
return -EINTR;
+ memset(&outarg, 0, sizeof(outarg));
req->in.numargs = 0;
req->in.h.opcode = FUSE_STATFS;
req->out.numargs = 1;
- req->out.args[0].size = sizeof(outarg);
+ req->out.args[0].size =
+ fc->minor < 4 ? FUSE_COMPAT_STATFS_SIZE : sizeof(outarg);
req->out.args[0].value = &outarg;
request_send(fc, req);
err = req->out.h.error;