Commit de5f1202 authored by Miklos Szeredi's avatar Miklos Szeredi Committed by Linus Torvalds

[PATCH] fuse: add frsize to statfs reply

Add 'frsize' member to the statfs reply.

I'm not sure if sending f_fsid will ever be needed, but just in case leave
some space at the end of the structure, so less compatibility mess would be
required.
Signed-off-by: default avatarMiklos Szeredi <miklos@szeredi.hu>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 45714d65
...@@ -218,6 +218,7 @@ static void convert_fuse_statfs(struct kstatfs *stbuf, struct fuse_kstatfs *attr ...@@ -218,6 +218,7 @@ static void convert_fuse_statfs(struct kstatfs *stbuf, struct fuse_kstatfs *attr
{ {
stbuf->f_type = FUSE_SUPER_MAGIC; stbuf->f_type = FUSE_SUPER_MAGIC;
stbuf->f_bsize = attr->bsize; stbuf->f_bsize = attr->bsize;
stbuf->f_frsize = attr->frsize;
stbuf->f_blocks = attr->blocks; stbuf->f_blocks = attr->blocks;
stbuf->f_bfree = attr->bfree; stbuf->f_bfree = attr->bfree;
stbuf->f_bavail = attr->bavail; stbuf->f_bavail = attr->bavail;
...@@ -238,10 +239,12 @@ static int fuse_statfs(struct super_block *sb, struct kstatfs *buf) ...@@ -238,10 +239,12 @@ static int fuse_statfs(struct super_block *sb, struct kstatfs *buf)
if (!req) if (!req)
return -EINTR; return -EINTR;
memset(&outarg, 0, sizeof(outarg));
req->in.numargs = 0; req->in.numargs = 0;
req->in.h.opcode = FUSE_STATFS; req->in.h.opcode = FUSE_STATFS;
req->out.numargs = 1; 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; req->out.args[0].value = &outarg;
request_send(fc, req); request_send(fc, req);
err = req->out.h.error; err = req->out.h.error;
......
...@@ -53,6 +53,9 @@ struct fuse_kstatfs { ...@@ -53,6 +53,9 @@ struct fuse_kstatfs {
__u64 ffree; __u64 ffree;
__u32 bsize; __u32 bsize;
__u32 namelen; __u32 namelen;
__u32 frsize;
__u32 padding;
__u32 spare[6];
}; };
#define FATTR_MODE (1 << 0) #define FATTR_MODE (1 << 0)
...@@ -213,6 +216,8 @@ struct fuse_write_out { ...@@ -213,6 +216,8 @@ struct fuse_write_out {
__u32 padding; __u32 padding;
}; };
#define FUSE_COMPAT_STATFS_SIZE 48
struct fuse_statfs_out { struct fuse_statfs_out {
struct fuse_kstatfs st; struct fuse_kstatfs st;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment