Commit e2d53f95 authored by Takashi Sato's avatar Takashi Sato Committed by Linus Torvalds

[PATCH] 2TB files: change type of kstatfs entries

This fix was proposed by Trond Myklebust.  He says: The type "sector_t" is
heavily tied in to the block layer interface as an offset/handle to a block,
and is subject to a supposedly block-specific configuration option:
CONFIG_LBD.  Despite this, it is used in struct kstatfs to save a couple of
bytes on the stack whenever we call the filesystems' ->statfs().

So kstatfs's entries related to blocks are invalid on statfs64 for a network
filesystem which has more than 2^32-1 blocks when CONFIG_LBD is disabled.

- struct kstatfs
  Change the type of following entries from sector_t to u64.
  f_blocks
  f_bfree
  f_bavail
  f_files
  f_ffree
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: default avatarTakashi Sato <sho@tnes.nec.co.jp>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 5515eff8
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
struct kstatfs { struct kstatfs {
long f_type; long f_type;
long f_bsize; long f_bsize;
sector_t f_blocks; u64 f_blocks;
sector_t f_bfree; u64 f_bfree;
sector_t f_bavail; u64 f_bavail;
sector_t f_files; u64 f_files;
sector_t f_ffree; u64 f_ffree;
__kernel_fsid_t f_fsid; __kernel_fsid_t f_fsid;
long f_namelen; long f_namelen;
long f_frsize; long f_frsize;
......
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