From: "Takashi Sato" 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: Trond Myklebust Signed-off-by: Takashi Sato Signed-off-by: Andrew Morton --- include/linux/statfs.h | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff -puN include/linux/statfs.h~2tb-files-change-type-of-kstatfs-entries include/linux/statfs.h --- devel/include/linux/statfs.h~2tb-files-change-type-of-kstatfs-entries 2006-01-12 18:34:13.000000000 -0800 +++ devel-akpm/include/linux/statfs.h 2006-01-12 18:34:13.000000000 -0800 @@ -8,11 +8,11 @@ struct kstatfs { long f_type; long f_bsize; - sector_t f_blocks; - sector_t f_bfree; - sector_t f_bavail; - sector_t f_files; - sector_t f_ffree; + u64 f_blocks; + u64 f_bfree; + u64 f_bavail; + u64 f_files; + u64 f_ffree; __kernel_fsid_t f_fsid; long f_namelen; long f_frsize; _