Messages in this thread Patch in this message | | | From | "Takashi Sato" <> | Subject | [PATCH 3/3] Fix problems on multi-TB filesystem and file | Date | Thu, 5 Jan 2006 19:05:31 +0900 |
| |
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.
The content of the patch attached to this mail is below. - struct kstatfs Change the type of following entries from sector_t to u64. f_blocks f_bfree f_bavail f_files f_ffree
Any feedback and comments are welcome.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Signed-off-by: Takashi Sato <sho@tnes.nec.co.jp>
diff -uprN -X linux-2.6.15-lsf/Documentation/dontdiff linux-2.6.15-lsf/include/linux/statfs.h linux-2.6.15-kstatfs/include/linux/statfs.h --- linux-2.6.15-lsf/include/linux/statfs.h 2006-01-03 12:21:10.000000000 +0900 +++ linux-2.6.15-kstatfs/include/linux/statfs.h 2006-01-04 15:24:38.000000000 +0900 @@ -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; -- Takashi Sato
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |