Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] Centralise definitions of sector_t and blkcnt_t

CONFIG_LBD and CONFIG_LSF are spread into asm/types.h for no particularly
good reason.

Centralising the definition in linux/types.h means that arch maintainers
don't need to bother adding it, as well as fixing the problem with
x86-64 users being asked to make a decision that has absolutely no
effect.

The H8/300 porters seem particularly confused since I'm not aware of any
microcontrollers that need to support 2TB filesystems.

Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Matthew Wilcox and committed by
Linus Torvalds
e6243863 2d941e99

+11 -73
+2 -4
block/Kconfig
··· 19 19 20 20 if BLOCK 21 21 22 - #XXX - it makes sense to enable this only for 32-bit subarch's, not for x86_64 23 - #for instance. 24 22 config LBD 25 23 bool "Support for Large Block Devices" 26 - depends on X86 || (MIPS && 32BIT) || PPC32 || (S390 && !64BIT) || SUPERH || UML 24 + depends on !64BIT 27 25 help 28 26 Say Y here if you want to attach large (bigger than 2TB) discs to 29 27 your machine, or if you want to have a raid or loopback device ··· 42 44 43 45 config LSF 44 46 bool "Support for Large Single Files" 45 - depends on X86 || (MIPS && 32BIT) || PPC32 || ARCH_S390_31 || SUPERH || UML 47 + depends on !64BIT 46 48 help 47 49 Say Y here if you want to be able to handle very large files (bigger 48 50 than 2TB), otherwise say N.
-5
include/asm-avr32/types.h
··· 57 57 58 58 typedef u32 dma_addr_t; 59 59 60 - #ifdef CONFIG_LBD 61 - typedef u64 sector_t; 62 - #define HAVE_SECTOR_T 63 - #endif 64 - 65 60 #endif /* __ASSEMBLY__ */ 66 61 67 62 #endif /* __KERNEL__ */
-6
include/asm-h8300/types.h
··· 55 55 56 56 typedef u32 dma_addr_t; 57 57 58 - #define HAVE_SECTOR_T 59 - typedef u64 sector_t; 60 - 61 - #define HAVE_BLKCNT_T 62 - typedef u64 blkcnt_t; 63 - 64 58 #endif /* __KERNEL__ */ 65 59 66 60 #endif /* __ASSEMBLY__ */
-10
include/asm-i386/types.h
··· 57 57 #endif 58 58 typedef u64 dma64_addr_t; 59 59 60 - #ifdef CONFIG_LBD 61 - typedef u64 sector_t; 62 - #define HAVE_SECTOR_T 63 - #endif 64 - 65 - #ifdef CONFIG_LSF 66 - typedef u64 blkcnt_t; 67 - #define HAVE_BLKCNT_T 68 - #endif 69 - 70 60 #endif /* __ASSEMBLY__ */ 71 61 72 62 #endif /* __KERNEL__ */
-10
include/asm-mips/types.h
··· 93 93 typedef unsigned long phys_t; 94 94 #endif 95 95 96 - #ifdef CONFIG_LBD 97 - typedef u64 sector_t; 98 - #define HAVE_SECTOR_T 99 - #endif 100 - 101 - #ifdef CONFIG_LSF 102 - typedef u64 blkcnt_t; 103 - #define HAVE_BLKCNT_T 104 - #endif 105 - 106 96 #endif /* __ASSEMBLY__ */ 107 97 108 98 #endif /* __KERNEL__ */
-10
include/asm-powerpc/types.h
··· 97 97 unsigned long env; 98 98 } func_descr_t; 99 99 100 - #ifdef CONFIG_LBD 101 - typedef u64 sector_t; 102 - #define HAVE_SECTOR_T 103 - #endif 104 - 105 - #ifdef CONFIG_LSF 106 - typedef u64 blkcnt_t; 107 - #define HAVE_BLKCNT_T 108 - #endif 109 - 110 100 #endif /* __ASSEMBLY__ */ 111 101 112 102 #endif /* __KERNEL__ */
-10
include/asm-s390/types.h
··· 87 87 } subreg; 88 88 } register_pair; 89 89 90 - #ifdef CONFIG_LBD 91 - typedef u64 sector_t; 92 - #define HAVE_SECTOR_T 93 - #endif 94 - 95 - #ifdef CONFIG_LSF 96 - typedef u64 blkcnt_t; 97 - #define HAVE_BLKCNT_T 98 - #endif 99 - 100 90 #endif /* ! __s390x__ */ 101 91 #endif /* __ASSEMBLY__ */ 102 92 #endif /* __KERNEL__ */
-10
include/asm-sh/types.h
··· 52 52 53 53 typedef u32 dma_addr_t; 54 54 55 - #ifdef CONFIG_LBD 56 - typedef u64 sector_t; 57 - #define HAVE_SECTOR_T 58 - #endif 59 - 60 - #ifdef CONFIG_LSF 61 - typedef u64 blkcnt_t; 62 - #define HAVE_BLKCNT_T 63 - #endif 64 - 65 55 #endif /* __ASSEMBLY__ */ 66 56 67 57 #endif /* __KERNEL__ */
-3
include/asm-x86_64/types.h
··· 48 48 typedef u64 dma64_addr_t; 49 49 typedef u64 dma_addr_t; 50 50 51 - typedef u64 sector_t; 52 - #define HAVE_SECTOR_T 53 - 54 51 #endif /* __ASSEMBLY__ */ 55 52 56 53 #endif /* __KERNEL__ */
+9 -5
include/linux/types.h
··· 136 136 * 137 137 * Linux always considers sectors to be 512 bytes long independently 138 138 * of the devices real block size. 139 - * 140 - * If required, asm/types.h can override it and define 141 - * HAVE_SECTOR_T 142 139 */ 143 - #ifndef HAVE_SECTOR_T 140 + #ifdef CONFIG_LBD 141 + typedef u64 sector_t; 142 + #else 144 143 typedef unsigned long sector_t; 145 144 #endif 146 145 147 - #ifndef HAVE_BLKCNT_T 146 + /* 147 + * The type of the inode's block count. 148 + */ 149 + #ifdef CONFIG_LSF 150 + typedef u64 blkcnt_t; 151 + #else 148 152 typedef unsigned long blkcnt_t; 149 153 #endif 150 154