mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 16:38:31 +00:00 
			
		
		
		
	 e2d53f9525
			
		
	
	
		e2d53f9525
		
	
	
	
	
		
			
			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 <Trond.Myklebust@netapp.com> Signed-off-by: Takashi Sato <sho@tnes.nec.co.jp> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
		
			
				
	
	
		
			23 lines
		
	
	
		
			305 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			305 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _LINUX_STATFS_H
 | |
| #define _LINUX_STATFS_H
 | |
| 
 | |
| #include <linux/types.h>
 | |
| 
 | |
| #include <asm/statfs.h>
 | |
| 
 | |
| struct kstatfs {
 | |
| 	long f_type;
 | |
| 	long f_bsize;
 | |
| 	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;
 | |
| 	long f_spare[5];
 | |
| };
 | |
| 
 | |
| #endif
 |