diff options
74 files changed, 195 insertions, 326 deletions
diff --git a/Documentation/mips/AU1xxx_IDE.README b/Documentation/mips/AU1xxx_IDE.README index f54962aea84d..8ace35ebdcd5 100644 --- a/Documentation/mips/AU1xxx_IDE.README +++ b/Documentation/mips/AU1xxx_IDE.README | |||
@@ -52,14 +52,12 @@ Two files are introduced: | |||
52 | b) 'drivers/ide/mips/au1xxx-ide.c' | 52 | b) 'drivers/ide/mips/au1xxx-ide.c' |
53 | contains the functionality of the AU1XXX IDE driver | 53 | contains the functionality of the AU1XXX IDE driver |
54 | 54 | ||
55 | Four configs variables are introduced: | 55 | Following extra configs variables are introduced: |
56 | 56 | ||
57 | CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA - enable the PIO+DBDMA mode | 57 | CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA - enable the PIO+DBDMA mode |
58 | CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA - enable the MWDMA mode | 58 | CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA - enable the MWDMA mode |
59 | CONFIG_BLK_DEV_IDE_AU1XXX_BURSTABLE_ON - set Burstable FIFO in DBDMA | 59 | CONFIG_BLK_DEV_IDE_AU1XXX_BURSTABLE_ON - set Burstable FIFO in DBDMA |
60 | controller | 60 | controller |
61 | CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ - maximum transfer size | ||
62 | per descriptor | ||
63 | 61 | ||
64 | 62 | ||
65 | SUPPORTED IDE MODES | 63 | SUPPORTED IDE MODES |
@@ -87,7 +85,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y | |||
87 | CONFIG_IDEDMA_PCI_AUTO=y | 85 | CONFIG_IDEDMA_PCI_AUTO=y |
88 | CONFIG_BLK_DEV_IDE_AU1XXX=y | 86 | CONFIG_BLK_DEV_IDE_AU1XXX=y |
89 | CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA=y | 87 | CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA=y |
90 | CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ=128 | ||
91 | CONFIG_BLK_DEV_IDEDMA=y | 88 | CONFIG_BLK_DEV_IDEDMA=y |
92 | CONFIG_IDEDMA_AUTO=y | 89 | CONFIG_IDEDMA_AUTO=y |
93 | 90 | ||
@@ -105,7 +102,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y | |||
105 | CONFIG_IDEDMA_PCI_AUTO=y | 102 | CONFIG_IDEDMA_PCI_AUTO=y |
106 | CONFIG_BLK_DEV_IDE_AU1XXX=y | 103 | CONFIG_BLK_DEV_IDE_AU1XXX=y |
107 | CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA=y | 104 | CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA=y |
108 | CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ=128 | ||
109 | CONFIG_BLK_DEV_IDEDMA=y | 105 | CONFIG_BLK_DEV_IDEDMA=y |
110 | CONFIG_IDEDMA_AUTO=y | 106 | CONFIG_IDEDMA_AUTO=y |
111 | 107 | ||
diff --git a/MAINTAINERS b/MAINTAINERS index 6f65a269cb17..3f6ef02ad681 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -4842,11 +4842,11 @@ S: Supported | |||
4842 | 4842 | ||
4843 | XFS FILESYSTEM | 4843 | XFS FILESYSTEM |
4844 | P: Silicon Graphics Inc | 4844 | P: Silicon Graphics Inc |
4845 | P: Tim Shimmin | 4845 | P: Bill O'Donnell |
4846 | M: xfs-masters@oss.sgi.com | 4846 | M: xfs-masters@oss.sgi.com |
4847 | L: xfs@oss.sgi.com | 4847 | L: xfs@oss.sgi.com |
4848 | W: http://oss.sgi.com/projects/xfs | 4848 | W: http://oss.sgi.com/projects/xfs |
4849 | T: git git://oss.sgi.com:8090/xfs/xfs-2.6.git | 4849 | T: git://oss.sgi.com/xfs/xfs.git |
4850 | S: Supported | 4850 | S: Supported |
4851 | 4851 | ||
4852 | XILINX SYSTEMACE DRIVER | 4852 | XILINX SYSTEMACE DRIVER |
diff --git a/arch/alpha/include/asm/Kbuild b/arch/alpha/include/asm/Kbuild index 4dad27360576..b7c8f188b313 100644 --- a/arch/alpha/include/asm/Kbuild +++ b/arch/alpha/include/asm/Kbuild | |||
@@ -9,4 +9,3 @@ unifdef-y += console.h | |||
9 | unifdef-y += fpu.h | 9 | unifdef-y += fpu.h |
10 | unifdef-y += sysinfo.h | 10 | unifdef-y += sysinfo.h |
11 | unifdef-y += compiler.h | 11 | unifdef-y += compiler.h |
12 | unifdef-y += swab.h | ||
diff --git a/arch/alpha/include/asm/byteorder.h b/arch/alpha/include/asm/byteorder.h index 6772f3168701..73683093202d 100644 --- a/arch/alpha/include/asm/byteorder.h +++ b/arch/alpha/include/asm/byteorder.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _ALPHA_BYTEORDER_H | 1 | #ifndef _ALPHA_BYTEORDER_H |
2 | #define _ALPHA_BYTEORDER_H | 2 | #define _ALPHA_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | #include <linux/byteorder/little_endian.h> | 4 | #include <linux/byteorder/little_endian.h> |
6 | 5 | ||
7 | #endif /* _ALPHA_BYTEORDER_H */ | 6 | #endif /* _ALPHA_BYTEORDER_H */ |
diff --git a/arch/arm/include/asm/Kbuild b/arch/arm/include/asm/Kbuild index 43b0b2ba392f..73237bd130a2 100644 --- a/arch/arm/include/asm/Kbuild +++ b/arch/arm/include/asm/Kbuild | |||
@@ -1,4 +1,3 @@ | |||
1 | include include/asm-generic/Kbuild.asm | 1 | include include/asm-generic/Kbuild.asm |
2 | 2 | ||
3 | unifdef-y += hwcap.h | 3 | unifdef-y += hwcap.h |
4 | unifdef-y += swab.h | ||
diff --git a/arch/arm/include/asm/byteorder.h b/arch/arm/include/asm/byteorder.h index c02b6fc28e1a..77379748b171 100644 --- a/arch/arm/include/asm/byteorder.h +++ b/arch/arm/include/asm/byteorder.h | |||
@@ -15,8 +15,6 @@ | |||
15 | #ifndef __ASM_ARM_BYTEORDER_H | 15 | #ifndef __ASM_ARM_BYTEORDER_H |
16 | #define __ASM_ARM_BYTEORDER_H | 16 | #define __ASM_ARM_BYTEORDER_H |
17 | 17 | ||
18 | #include <asm/swab.h> | ||
19 | |||
20 | #ifdef __ARMEB__ | 18 | #ifdef __ARMEB__ |
21 | #include <linux/byteorder/big_endian.h> | 19 | #include <linux/byteorder/big_endian.h> |
22 | #else | 20 | #else |
diff --git a/arch/avr32/include/asm/Kbuild b/arch/avr32/include/asm/Kbuild index 219822c8ad18..3136628ba8d2 100644 --- a/arch/avr32/include/asm/Kbuild +++ b/arch/avr32/include/asm/Kbuild | |||
@@ -1,4 +1,3 @@ | |||
1 | include include/asm-generic/Kbuild.asm | 1 | include include/asm-generic/Kbuild.asm |
2 | 2 | ||
3 | header-y += swab.h | ||
4 | header-y += cachectl.h | 3 | header-y += cachectl.h |
diff --git a/arch/avr32/include/asm/byteorder.h b/arch/avr32/include/asm/byteorder.h index 2aba64b4e122..50abc21619a8 100644 --- a/arch/avr32/include/asm/byteorder.h +++ b/arch/avr32/include/asm/byteorder.h | |||
@@ -4,7 +4,6 @@ | |||
4 | #ifndef __ASM_AVR32_BYTEORDER_H | 4 | #ifndef __ASM_AVR32_BYTEORDER_H |
5 | #define __ASM_AVR32_BYTEORDER_H | 5 | #define __ASM_AVR32_BYTEORDER_H |
6 | 6 | ||
7 | #include <asm/swab.h> | ||
8 | #include <linux/byteorder/big_endian.h> | 7 | #include <linux/byteorder/big_endian.h> |
9 | 8 | ||
10 | #endif /* __ASM_AVR32_BYTEORDER_H */ | 9 | #endif /* __ASM_AVR32_BYTEORDER_H */ |
diff --git a/arch/blackfin/include/asm/Kbuild b/arch/blackfin/include/asm/Kbuild index d0d1ac435544..606ecfdcc962 100644 --- a/arch/blackfin/include/asm/Kbuild +++ b/arch/blackfin/include/asm/Kbuild | |||
@@ -1,4 +1,3 @@ | |||
1 | include include/asm-generic/Kbuild.asm | 1 | include include/asm-generic/Kbuild.asm |
2 | 2 | ||
3 | unifdef-y += fixed_code.h | 3 | unifdef-y += fixed_code.h |
4 | unifdef-y += swab.h | ||
diff --git a/arch/blackfin/include/asm/byteorder.h b/arch/blackfin/include/asm/byteorder.h index b9e797a497b4..3e69106a4d37 100644 --- a/arch/blackfin/include/asm/byteorder.h +++ b/arch/blackfin/include/asm/byteorder.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _BLACKFIN_BYTEORDER_H | 1 | #ifndef _BLACKFIN_BYTEORDER_H |
2 | #define _BLACKFIN_BYTEORDER_H | 2 | #define _BLACKFIN_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | #include <linux/byteorder/little_endian.h> | 4 | #include <linux/byteorder/little_endian.h> |
6 | 5 | ||
7 | #endif /* _BLACKFIN_BYTEORDER_H */ | 6 | #endif /* _BLACKFIN_BYTEORDER_H */ |
diff --git a/arch/cris/include/arch-v10/arch/byteorder.h b/arch/cris/include/arch-v10/arch/swab.h index 255b646b7fa8..e4e847d8a05e 100644 --- a/arch/cris/include/arch-v10/arch/byteorder.h +++ b/arch/cris/include/arch-v10/arch/swab.h | |||
@@ -1,26 +1,30 @@ | |||
1 | #ifndef _CRIS_ARCH_BYTEORDER_H | 1 | #ifndef _CRIS_ARCH_SWAB_H |
2 | #define _CRIS_ARCH_BYTEORDER_H | 2 | #define _CRIS_ARCH_SWAB_H |
3 | 3 | ||
4 | #include <asm/types.h> | 4 | #include <asm/types.h> |
5 | #include <linux/compiler.h> | 5 | #include <linux/compiler.h> |
6 | 6 | ||
7 | #define __SWAB_64_THRU_32__ | ||
8 | |||
7 | /* we just define these two (as we can do the swap in a single | 9 | /* we just define these two (as we can do the swap in a single |
8 | * asm instruction in CRIS) and the arch-independent files will put | 10 | * asm instruction in CRIS) and the arch-independent files will put |
9 | * them together into ntohl etc. | 11 | * them together into ntohl etc. |
10 | */ | 12 | */ |
11 | 13 | ||
12 | static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) | 14 | static inline __attribute_const__ __u32 __arch_swab32(__u32 x) |
13 | { | 15 | { |
14 | __asm__ ("swapwb %0" : "=r" (x) : "0" (x)); | 16 | __asm__ ("swapwb %0" : "=r" (x) : "0" (x)); |
15 | 17 | ||
16 | return(x); | 18 | return(x); |
17 | } | 19 | } |
20 | #define __arch_swab32 __arch_swab32 | ||
18 | 21 | ||
19 | static inline __attribute_const__ __u16 ___arch__swab16(__u16 x) | 22 | static inline __attribute_const__ __u16 __arch_swab16(__u16 x) |
20 | { | 23 | { |
21 | __asm__ ("swapb %0" : "=r" (x) : "0" (x)); | 24 | __asm__ ("swapb %0" : "=r" (x) : "0" (x)); |
22 | 25 | ||
23 | return(x); | 26 | return(x); |
24 | } | 27 | } |
28 | #define __arch_swab16 __arch_swab16 | ||
25 | 29 | ||
26 | #endif | 30 | #endif |
diff --git a/arch/cris/include/arch-v32/arch/byteorder.h b/arch/cris/include/arch-v32/arch/byteorder.h deleted file mode 100644 index 6ef8fb4a35f2..000000000000 --- a/arch/cris/include/arch-v32/arch/byteorder.h +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | #ifndef _ASM_CRIS_ARCH_BYTEORDER_H | ||
2 | #define _ASM_CRIS_ARCH_BYTEORDER_H | ||
3 | |||
4 | #include <asm/types.h> | ||
5 | |||
6 | static inline __const__ __u32 | ||
7 | ___arch__swab32(__u32 x) | ||
8 | { | ||
9 | __asm__ __volatile__ ("swapwb %0" : "=r" (x) : "0" (x)); | ||
10 | return (x); | ||
11 | } | ||
12 | |||
13 | static inline __const__ __u16 | ||
14 | ___arch__swab16(__u16 x) | ||
15 | { | ||
16 | __asm__ __volatile__ ("swapb %0" : "=r" (x) : "0" (x)); | ||
17 | return (x); | ||
18 | } | ||
19 | |||
20 | #endif /* _ASM_CRIS_ARCH_BYTEORDER_H */ | ||
diff --git a/arch/cris/include/arch-v32/arch/swab.h b/arch/cris/include/arch-v32/arch/swab.h new file mode 100644 index 000000000000..9a4ea5e209c2 --- /dev/null +++ b/arch/cris/include/arch-v32/arch/swab.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #ifndef _ASM_CRIS_ARCH_SWAB_H | ||
2 | #define _ASM_CRIS_ARCH_SWAB_H | ||
3 | |||
4 | #include <asm/types.h> | ||
5 | |||
6 | #define __SWAB_64_THRU_32__ | ||
7 | |||
8 | static inline __const__ __u32 | ||
9 | __arch_swab32(__u32 x) | ||
10 | { | ||
11 | __asm__ __volatile__ ("swapwb %0" : "=r" (x) : "0" (x)); | ||
12 | return (x); | ||
13 | } | ||
14 | #define __arch_swab32 __arch_swab32 | ||
15 | |||
16 | static inline __const__ __u16 | ||
17 | __arch_swab16(__u16 x) | ||
18 | { | ||
19 | __asm__ __volatile__ ("swapb %0" : "=r" (x) : "0" (x)); | ||
20 | return (x); | ||
21 | } | ||
22 | #define __arch_swab16 __arch_swab16 | ||
23 | |||
24 | #endif /* _ASM_CRIS_ARCH_SWAB_H */ | ||
diff --git a/arch/cris/include/asm/byteorder.h b/arch/cris/include/asm/byteorder.h index cc8e418cfd14..bcd189798e26 100644 --- a/arch/cris/include/asm/byteorder.h +++ b/arch/cris/include/asm/byteorder.h | |||
@@ -1,25 +1,6 @@ | |||
1 | #ifndef _CRIS_BYTEORDER_H | 1 | #ifndef _CRIS_BYTEORDER_H |
2 | #define _CRIS_BYTEORDER_H | 2 | #define _CRIS_BYTEORDER_H |
3 | 3 | ||
4 | #ifdef __GNUC__ | ||
5 | |||
6 | #ifdef __KERNEL__ | ||
7 | #include <arch/byteorder.h> | ||
8 | |||
9 | /* defines are necessary because the other files detect the presence | ||
10 | * of a defined __arch_swab32, not an inline | ||
11 | */ | ||
12 | #define __arch__swab32(x) ___arch__swab32(x) | ||
13 | #define __arch__swab16(x) ___arch__swab16(x) | ||
14 | #endif /* __KERNEL__ */ | ||
15 | |||
16 | #if !defined(__STRICT_ANSI__) || defined(__KERNEL__) | ||
17 | # define __BYTEORDER_HAS_U64__ | ||
18 | # define __SWAB_64_THRU_32__ | ||
19 | #endif | ||
20 | |||
21 | #endif /* __GNUC__ */ | ||
22 | |||
23 | #include <linux/byteorder/little_endian.h> | 4 | #include <linux/byteorder/little_endian.h> |
24 | 5 | ||
25 | #endif | 6 | #endif |
diff --git a/arch/cris/include/asm/swab.h b/arch/cris/include/asm/swab.h new file mode 100644 index 000000000000..80668e88419c --- /dev/null +++ b/arch/cris/include/asm/swab.h | |||
@@ -0,0 +1,8 @@ | |||
1 | #ifndef _CRIS_SWAB_H | ||
2 | #define _CRIS_SWAB_H | ||
3 | |||
4 | #ifdef __KERNEL__ | ||
5 | #include <arch/swab.h> | ||
6 | #endif /* __KERNEL__ */ | ||
7 | |||
8 | #endif /* _CRIS_SWAB_H */ | ||
diff --git a/arch/h8300/include/asm/Kbuild b/arch/h8300/include/asm/Kbuild index 27b108a86b39..c68e1680da01 100644 --- a/arch/h8300/include/asm/Kbuild +++ b/arch/h8300/include/asm/Kbuild | |||
@@ -1,2 +1 @@ | |||
1 | include include/asm-generic/Kbuild.asm | include include/asm-generic/Kbuild.asm | |
2 | unifdef-y += swab.h | ||
diff --git a/arch/h8300/include/asm/byteorder.h b/arch/h8300/include/asm/byteorder.h index c36b80a3dd84..13539da99efd 100644 --- a/arch/h8300/include/asm/byteorder.h +++ b/arch/h8300/include/asm/byteorder.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _H8300_BYTEORDER_H | 1 | #ifndef _H8300_BYTEORDER_H |
2 | #define _H8300_BYTEORDER_H | 2 | #define _H8300_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | #include <linux/byteorder/big_endian.h> | 4 | #include <linux/byteorder/big_endian.h> |
6 | 5 | ||
7 | #endif /* _H8300_BYTEORDER_H */ | 6 | #endif /* _H8300_BYTEORDER_H */ |
diff --git a/arch/ia64/include/asm/Kbuild b/arch/ia64/include/asm/Kbuild index 3b25bd9dca91..ccbe8ae47a61 100644 --- a/arch/ia64/include/asm/Kbuild +++ b/arch/ia64/include/asm/Kbuild | |||
@@ -14,4 +14,3 @@ unifdef-y += gcc_intrin.h | |||
14 | unifdef-y += intrinsics.h | 14 | unifdef-y += intrinsics.h |
15 | unifdef-y += perfmon.h | 15 | unifdef-y += perfmon.h |
16 | unifdef-y += ustack.h | 16 | unifdef-y += ustack.h |
17 | unifdef-y += swab.h | ||
diff --git a/arch/ia64/include/asm/byteorder.h b/arch/ia64/include/asm/byteorder.h index 0f84c5cb703d..a8dd73558150 100644 --- a/arch/ia64/include/asm/byteorder.h +++ b/arch/ia64/include/asm/byteorder.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _ASM_IA64_BYTEORDER_H | 1 | #ifndef _ASM_IA64_BYTEORDER_H |
2 | #define _ASM_IA64_BYTEORDER_H | 2 | #define _ASM_IA64_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | #include <linux/byteorder/little_endian.h> | 4 | #include <linux/byteorder/little_endian.h> |
6 | 5 | ||
7 | #endif /* _ASM_IA64_BYTEORDER_H */ | 6 | #endif /* _ASM_IA64_BYTEORDER_H */ |
diff --git a/arch/m68knommu/include/asm/Kbuild b/arch/m68knommu/include/asm/Kbuild index 58c02a454130..c68e1680da01 100644 --- a/arch/m68knommu/include/asm/Kbuild +++ b/arch/m68knommu/include/asm/Kbuild | |||
@@ -1,3 +1 @@ | |||
1 | include include/asm-generic/Kbuild.asm | include include/asm-generic/Kbuild.asm | |
2 | |||
3 | unifdef-y += swab.h | ||
diff --git a/arch/m68knommu/include/asm/byteorder.h b/arch/m68knommu/include/asm/byteorder.h index a6f0b8f7f622..9c6c76a15041 100644 --- a/arch/m68knommu/include/asm/byteorder.h +++ b/arch/m68knommu/include/asm/byteorder.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _M68KNOMMU_BYTEORDER_H | 1 | #ifndef _M68KNOMMU_BYTEORDER_H |
2 | #define _M68KNOMMU_BYTEORDER_H | 2 | #define _M68KNOMMU_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | #include <linux/byteorder/big_endian.h> | 4 | #include <linux/byteorder/big_endian.h> |
6 | 5 | ||
7 | #endif /* _M68KNOMMU_BYTEORDER_H */ | 6 | #endif /* _M68KNOMMU_BYTEORDER_H */ |
diff --git a/arch/mips/include/asm/Kbuild b/arch/mips/include/asm/Kbuild index 023866c0c102..7897f05e3165 100644 --- a/arch/mips/include/asm/Kbuild +++ b/arch/mips/include/asm/Kbuild | |||
@@ -1,4 +1,3 @@ | |||
1 | include include/asm-generic/Kbuild.asm | 1 | include include/asm-generic/Kbuild.asm |
2 | 2 | ||
3 | header-y += cachectl.h sgidefs.h sysmips.h | 3 | header-y += cachectl.h sgidefs.h sysmips.h |
4 | header-y += swab.h | ||
diff --git a/arch/mips/include/asm/byteorder.h b/arch/mips/include/asm/byteorder.h index 607b71830707..9579051ff1c7 100644 --- a/arch/mips/include/asm/byteorder.h +++ b/arch/mips/include/asm/byteorder.h | |||
@@ -8,8 +8,6 @@ | |||
8 | #ifndef _ASM_BYTEORDER_H | 8 | #ifndef _ASM_BYTEORDER_H |
9 | #define _ASM_BYTEORDER_H | 9 | #define _ASM_BYTEORDER_H |
10 | 10 | ||
11 | #include <asm/swab.h> | ||
12 | |||
13 | #if defined(__MIPSEB__) | 11 | #if defined(__MIPSEB__) |
14 | #include <linux/byteorder/big_endian.h> | 12 | #include <linux/byteorder/big_endian.h> |
15 | #elif defined(__MIPSEL__) | 13 | #elif defined(__MIPSEL__) |
diff --git a/arch/parisc/include/asm/Kbuild b/arch/parisc/include/asm/Kbuild index 2121d99f8364..f88b252e419c 100644 --- a/arch/parisc/include/asm/Kbuild +++ b/arch/parisc/include/asm/Kbuild | |||
@@ -1,4 +1,3 @@ | |||
1 | include include/asm-generic/Kbuild.asm | 1 | include include/asm-generic/Kbuild.asm |
2 | 2 | ||
3 | unifdef-y += pdc.h | 3 | unifdef-y += pdc.h |
4 | unifdef-y += swab.h | ||
diff --git a/arch/parisc/include/asm/byteorder.h b/arch/parisc/include/asm/byteorder.h index da66029c4cb2..58af2c5f5d61 100644 --- a/arch/parisc/include/asm/byteorder.h +++ b/arch/parisc/include/asm/byteorder.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _PARISC_BYTEORDER_H | 1 | #ifndef _PARISC_BYTEORDER_H |
2 | #define _PARISC_BYTEORDER_H | 2 | #define _PARISC_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | #include <linux/byteorder/big_endian.h> | 4 | #include <linux/byteorder/big_endian.h> |
6 | 5 | ||
7 | #endif /* _PARISC_BYTEORDER_H */ | 6 | #endif /* _PARISC_BYTEORDER_H */ |
diff --git a/arch/powerpc/include/asm/Kbuild b/arch/powerpc/include/asm/Kbuild index 9268602de5d0..5ab7d7fe198c 100644 --- a/arch/powerpc/include/asm/Kbuild +++ b/arch/powerpc/include/asm/Kbuild | |||
@@ -35,4 +35,3 @@ unifdef-y += spu_info.h | |||
35 | unifdef-y += termios.h | 35 | unifdef-y += termios.h |
36 | unifdef-y += types.h | 36 | unifdef-y += types.h |
37 | unifdef-y += unistd.h | 37 | unifdef-y += unistd.h |
38 | unifdef-y += swab.h | ||
diff --git a/arch/powerpc/include/asm/byteorder.h b/arch/powerpc/include/asm/byteorder.h index 5cca27a41532..aa6cc4fac965 100644 --- a/arch/powerpc/include/asm/byteorder.h +++ b/arch/powerpc/include/asm/byteorder.h | |||
@@ -7,8 +7,6 @@ | |||
7 | * as published by the Free Software Foundation; either version | 7 | * as published by the Free Software Foundation; either version |
8 | * 2 of the License, or (at your option) any later version. | 8 | * 2 of the License, or (at your option) any later version. |
9 | */ | 9 | */ |
10 | |||
11 | #include <asm/swab.h> | ||
12 | #include <linux/byteorder/big_endian.h> | 10 | #include <linux/byteorder/big_endian.h> |
13 | 11 | ||
14 | #endif /* _ASM_POWERPC_BYTEORDER_H */ | 12 | #endif /* _ASM_POWERPC_BYTEORDER_H */ |
diff --git a/arch/s390/include/asm/Kbuild b/arch/s390/include/asm/Kbuild index f2af4167bd5f..63a23415fba6 100644 --- a/arch/s390/include/asm/Kbuild +++ b/arch/s390/include/asm/Kbuild | |||
@@ -13,4 +13,3 @@ unifdef-y += cmb.h | |||
13 | unifdef-y += debug.h | 13 | unifdef-y += debug.h |
14 | unifdef-y += chpid.h | 14 | unifdef-y += chpid.h |
15 | unifdef-y += schid.h | 15 | unifdef-y += schid.h |
16 | unifdef-y += swab.h | ||
diff --git a/arch/s390/include/asm/byteorder.h b/arch/s390/include/asm/byteorder.h index b95a2b2933fb..a332e59e26fc 100644 --- a/arch/s390/include/asm/byteorder.h +++ b/arch/s390/include/asm/byteorder.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _S390_BYTEORDER_H | 1 | #ifndef _S390_BYTEORDER_H |
2 | #define _S390_BYTEORDER_H | 2 | #define _S390_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | #include <linux/byteorder/big_endian.h> | 4 | #include <linux/byteorder/big_endian.h> |
6 | 5 | ||
7 | #endif /* _S390_BYTEORDER_H */ | 6 | #endif /* _S390_BYTEORDER_H */ |
diff --git a/arch/sh/include/asm/Kbuild b/arch/sh/include/asm/Kbuild index f1a2a0d1c79c..43910cdf78a5 100644 --- a/arch/sh/include/asm/Kbuild +++ b/arch/sh/include/asm/Kbuild | |||
@@ -6,4 +6,3 @@ unifdef-y += unistd_32.h | |||
6 | unifdef-y += unistd_64.h | 6 | unifdef-y += unistd_64.h |
7 | unifdef-y += posix_types_32.h | 7 | unifdef-y += posix_types_32.h |
8 | unifdef-y += posix_types_64.h | 8 | unifdef-y += posix_types_64.h |
9 | unifdef-y += swab.h | ||
diff --git a/arch/sh/include/asm/byteorder.h b/arch/sh/include/asm/byteorder.h index e95c41a5c8cc..db2f5d7cb17d 100644 --- a/arch/sh/include/asm/byteorder.h +++ b/arch/sh/include/asm/byteorder.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef __ASM_SH_BYTEORDER_H | 1 | #ifndef __ASM_SH_BYTEORDER_H |
2 | #define __ASM_SH_BYTEORDER_H | 2 | #define __ASM_SH_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | |||
6 | #ifdef __LITTLE_ENDIAN__ | 4 | #ifdef __LITTLE_ENDIAN__ |
7 | #include <linux/byteorder/little_endian.h> | 5 | #include <linux/byteorder/little_endian.h> |
8 | #else | 6 | #else |
diff --git a/arch/sparc/include/asm/Kbuild b/arch/sparc/include/asm/Kbuild index 95e38a43dff0..deeb0fba8029 100644 --- a/arch/sparc/include/asm/Kbuild +++ b/arch/sparc/include/asm/Kbuild | |||
@@ -17,4 +17,3 @@ header-y += traps.h | |||
17 | header-y += uctx.h | 17 | header-y += uctx.h |
18 | header-y += utrap.h | 18 | header-y += utrap.h |
19 | header-y += watchdog.h | 19 | header-y += watchdog.h |
20 | header-y += swab.h | ||
diff --git a/arch/sparc/include/asm/byteorder.h b/arch/sparc/include/asm/byteorder.h index 48a047cd6fa9..ccc1b6b7de6c 100644 --- a/arch/sparc/include/asm/byteorder.h +++ b/arch/sparc/include/asm/byteorder.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _SPARC_BYTEORDER_H | 1 | #ifndef _SPARC_BYTEORDER_H |
2 | #define _SPARC_BYTEORDER_H | 2 | #define _SPARC_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | #include <linux/byteorder/big_endian.h> | 4 | #include <linux/byteorder/big_endian.h> |
6 | 5 | ||
7 | #endif /* _SPARC_BYTEORDER_H */ | 6 | #endif /* _SPARC_BYTEORDER_H */ |
diff --git a/arch/x86/include/asm/Kbuild b/arch/x86/include/asm/Kbuild index a9f8a814a1f7..4a8e80cdcfa5 100644 --- a/arch/x86/include/asm/Kbuild +++ b/arch/x86/include/asm/Kbuild | |||
@@ -22,4 +22,3 @@ unifdef-y += unistd_32.h | |||
22 | unifdef-y += unistd_64.h | 22 | unifdef-y += unistd_64.h |
23 | unifdef-y += vm86.h | 23 | unifdef-y += vm86.h |
24 | unifdef-y += vsyscall.h | 24 | unifdef-y += vsyscall.h |
25 | unifdef-y += swab.h | ||
diff --git a/arch/x86/include/asm/byteorder.h b/arch/x86/include/asm/byteorder.h index 7c49917e3d9d..b13a7a88f3eb 100644 --- a/arch/x86/include/asm/byteorder.h +++ b/arch/x86/include/asm/byteorder.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _ASM_X86_BYTEORDER_H | 1 | #ifndef _ASM_X86_BYTEORDER_H |
2 | #define _ASM_X86_BYTEORDER_H | 2 | #define _ASM_X86_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | #include <linux/byteorder/little_endian.h> | 4 | #include <linux/byteorder/little_endian.h> |
6 | 5 | ||
7 | #endif /* _ASM_X86_BYTEORDER_H */ | 6 | #endif /* _ASM_X86_BYTEORDER_H */ |
diff --git a/arch/xtensa/include/asm/Kbuild b/arch/xtensa/include/asm/Kbuild index 58c02a454130..c68e1680da01 100644 --- a/arch/xtensa/include/asm/Kbuild +++ b/arch/xtensa/include/asm/Kbuild | |||
@@ -1,3 +1 @@ | |||
1 | include include/asm-generic/Kbuild.asm | include include/asm-generic/Kbuild.asm | |
2 | |||
3 | unifdef-y += swab.h | ||
diff --git a/arch/xtensa/include/asm/byteorder.h b/arch/xtensa/include/asm/byteorder.h index 329b94591ca4..54eb6315349c 100644 --- a/arch/xtensa/include/asm/byteorder.h +++ b/arch/xtensa/include/asm/byteorder.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef _XTENSA_BYTEORDER_H | 1 | #ifndef _XTENSA_BYTEORDER_H |
2 | #define _XTENSA_BYTEORDER_H | 2 | #define _XTENSA_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | |||
6 | #ifdef __XTENSA_EL__ | 4 | #ifdef __XTENSA_EL__ |
7 | #include <linux/byteorder/little_endian.h> | 5 | #include <linux/byteorder/little_endian.h> |
8 | #elif defined(__XTENSA_EB__) | 6 | #elif defined(__XTENSA_EB__) |
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index 3f9503867e6b..b1c6f68d98ce 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig | |||
@@ -701,11 +701,6 @@ config BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA | |||
701 | depends on SOC_AU1200 && BLK_DEV_IDE_AU1XXX | 701 | depends on SOC_AU1200 && BLK_DEV_IDE_AU1XXX |
702 | endchoice | 702 | endchoice |
703 | 703 | ||
704 | config BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ | ||
705 | int "Maximum transfer size (KB) per request (up to 128)" | ||
706 | default "128" | ||
707 | depends on BLK_DEV_IDE_AU1XXX | ||
708 | |||
709 | config BLK_DEV_IDE_TX4938 | 704 | config BLK_DEV_IDE_TX4938 |
710 | tristate "TX4938 internal IDE support" | 705 | tristate "TX4938 internal IDE support" |
711 | depends on SOC_TX4938 | 706 | depends on SOC_TX4938 |
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index 4088a622873e..806760d24cef 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c | |||
@@ -633,7 +633,7 @@ static void ide_disk_setup(ide_drive_t *drive) | |||
633 | printk(KERN_INFO "%s: max request size: %dKiB\n", drive->name, | 633 | printk(KERN_INFO "%s: max request size: %dKiB\n", drive->name, |
634 | q->max_sectors / 2); | 634 | q->max_sectors / 2); |
635 | 635 | ||
636 | if (ata_id_is_ssd(id) || ata_id_is_cfa(id)) | 636 | if (ata_id_is_ssd(id)) |
637 | queue_flag_set_unlocked(QUEUE_FLAG_NONROT, q); | 637 | queue_flag_set_unlocked(QUEUE_FLAG_NONROT, q); |
638 | 638 | ||
639 | /* calculate drive capacity, and select LBA if possible */ | 639 | /* calculate drive capacity, and select LBA if possible */ |
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c index e728cfe7273f..753b92ebe0ae 100644 --- a/drivers/ide/ide-iops.c +++ b/drivers/ide/ide-iops.c | |||
@@ -493,7 +493,7 @@ static int __ide_wait_stat(ide_drive_t *drive, u8 good, u8 bad, unsigned long ti | |||
493 | stat = tp_ops->read_status(hwif); | 493 | stat = tp_ops->read_status(hwif); |
494 | 494 | ||
495 | if (stat & ATA_BUSY) { | 495 | if (stat & ATA_BUSY) { |
496 | local_irq_save(flags); | 496 | local_save_flags(flags); |
497 | local_irq_enable_in_hardirq(); | 497 | local_irq_enable_in_hardirq(); |
498 | timeout += jiffies; | 498 | timeout += jiffies; |
499 | while ((stat = tp_ops->read_status(hwif)) & ATA_BUSY) { | 499 | while ((stat = tp_ops->read_status(hwif)) & ATA_BUSY) { |
diff --git a/drivers/ide/ide-pm.c b/drivers/ide/ide-pm.c index 4b3bf6a06b70..60538d9c84ee 100644 --- a/drivers/ide/ide-pm.c +++ b/drivers/ide/ide-pm.c | |||
@@ -186,12 +186,10 @@ void ide_complete_pm_request(ide_drive_t *drive, struct request *rq) | |||
186 | blk_pm_suspend_request(rq) ? "suspend" : "resume"); | 186 | blk_pm_suspend_request(rq) ? "suspend" : "resume"); |
187 | #endif | 187 | #endif |
188 | spin_lock_irqsave(q->queue_lock, flags); | 188 | spin_lock_irqsave(q->queue_lock, flags); |
189 | if (blk_pm_suspend_request(rq)) { | 189 | if (blk_pm_suspend_request(rq)) |
190 | blk_stop_queue(q); | 190 | blk_stop_queue(q); |
191 | } else { | 191 | else |
192 | drive->dev_flags &= ~IDE_DFLAG_BLOCKED; | 192 | drive->dev_flags &= ~IDE_DFLAG_BLOCKED; |
193 | blk_start_queue(q); | ||
194 | } | ||
195 | spin_unlock_irqrestore(q->queue_lock, flags); | 193 | spin_unlock_irqrestore(q->queue_lock, flags); |
196 | 194 | ||
197 | drive->hwif->rq = NULL; | 195 | drive->hwif->rq = NULL; |
@@ -219,6 +217,8 @@ void ide_check_pm_state(ide_drive_t *drive, struct request *rq) | |||
219 | * point. | 217 | * point. |
220 | */ | 218 | */ |
221 | ide_hwif_t *hwif = drive->hwif; | 219 | ide_hwif_t *hwif = drive->hwif; |
220 | struct request_queue *q = drive->queue; | ||
221 | unsigned long flags; | ||
222 | int rc; | 222 | int rc; |
223 | #ifdef DEBUG_PM | 223 | #ifdef DEBUG_PM |
224 | printk("%s: Wakeup request inited, waiting for !BSY...\n", drive->name); | 224 | printk("%s: Wakeup request inited, waiting for !BSY...\n", drive->name); |
@@ -231,5 +231,9 @@ void ide_check_pm_state(ide_drive_t *drive, struct request *rq) | |||
231 | rc = ide_wait_not_busy(hwif, 100000); | 231 | rc = ide_wait_not_busy(hwif, 100000); |
232 | if (rc) | 232 | if (rc) |
233 | printk(KERN_WARNING "%s: drive not ready on wakeup\n", drive->name); | 233 | printk(KERN_WARNING "%s: drive not ready on wakeup\n", drive->name); |
234 | |||
235 | spin_lock_irqsave(q->queue_lock, flags); | ||
236 | blk_start_queue(q); | ||
237 | spin_unlock_irqrestore(q->queue_lock, flags); | ||
234 | } | 238 | } |
235 | } | 239 | } |
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index 0ccbb4459fb9..312127ea443a 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -796,7 +796,7 @@ static int ide_probe_port(ide_hwif_t *hwif) | |||
796 | if (irqd) | 796 | if (irqd) |
797 | disable_irq(hwif->irq); | 797 | disable_irq(hwif->irq); |
798 | 798 | ||
799 | local_irq_save(flags); | 799 | local_save_flags(flags); |
800 | local_irq_enable_in_hardirq(); | 800 | local_irq_enable_in_hardirq(); |
801 | 801 | ||
802 | if (ide_port_wait_ready(hwif) == -EBUSY) | 802 | if (ide_port_wait_ready(hwif) == -EBUSY) |
diff --git a/drivers/ide/it821x.c b/drivers/ide/it821x.c index 0be27ac1f077..e1c4f5437396 100644 --- a/drivers/ide/it821x.c +++ b/drivers/ide/it821x.c | |||
@@ -68,6 +68,8 @@ | |||
68 | 68 | ||
69 | #define DRV_NAME "it821x" | 69 | #define DRV_NAME "it821x" |
70 | 70 | ||
71 | #define QUIRK_VORTEX86 1 | ||
72 | |||
71 | struct it821x_dev | 73 | struct it821x_dev |
72 | { | 74 | { |
73 | unsigned int smart:1, /* Are we in smart raid mode */ | 75 | unsigned int smart:1, /* Are we in smart raid mode */ |
@@ -79,6 +81,7 @@ struct it821x_dev | |||
79 | u16 pio[2]; /* Cached PIO values */ | 81 | u16 pio[2]; /* Cached PIO values */ |
80 | u16 mwdma[2]; /* Cached MWDMA values */ | 82 | u16 mwdma[2]; /* Cached MWDMA values */ |
81 | u16 udma[2]; /* Cached UDMA values (per drive) */ | 83 | u16 udma[2]; /* Cached UDMA values (per drive) */ |
84 | u16 quirks; | ||
82 | }; | 85 | }; |
83 | 86 | ||
84 | #define ATA_66 0 | 87 | #define ATA_66 0 |
@@ -557,8 +560,7 @@ static void __devinit init_hwif_it821x(ide_hwif_t *hwif) | |||
557 | * this is necessary. | 560 | * this is necessary. |
558 | */ | 561 | */ |
559 | 562 | ||
560 | pci_read_config_byte(dev, 0x08, &conf); | 563 | if (dev->revision == 0x10) { |
561 | if (conf == 0x10) { | ||
562 | idev->timing10 = 1; | 564 | idev->timing10 = 1; |
563 | hwif->host_flags |= IDE_HFLAG_NO_ATAPI_DMA; | 565 | hwif->host_flags |= IDE_HFLAG_NO_ATAPI_DMA; |
564 | if (idev->smart == 0) | 566 | if (idev->smart == 0) |
@@ -577,6 +579,12 @@ static void __devinit init_hwif_it821x(ide_hwif_t *hwif) | |||
577 | 579 | ||
578 | hwif->ultra_mask = ATA_UDMA6; | 580 | hwif->ultra_mask = ATA_UDMA6; |
579 | hwif->mwdma_mask = ATA_MWDMA2; | 581 | hwif->mwdma_mask = ATA_MWDMA2; |
582 | |||
583 | /* Vortex86SX quirk: prevent Ultra-DMA mode to fix BadCRC issue */ | ||
584 | if (idev->quirks & QUIRK_VORTEX86) { | ||
585 | if (dev->revision == 0x11) | ||
586 | hwif->ultra_mask = 0; | ||
587 | } | ||
580 | } | 588 | } |
581 | 589 | ||
582 | static void it8212_disable_raid(struct pci_dev *dev) | 590 | static void it8212_disable_raid(struct pci_dev *dev) |
@@ -649,6 +657,8 @@ static int __devinit it821x_init_one(struct pci_dev *dev, const struct pci_devic | |||
649 | return -ENOMEM; | 657 | return -ENOMEM; |
650 | } | 658 | } |
651 | 659 | ||
660 | itdevs->quirks = id->driver_data; | ||
661 | |||
652 | rc = ide_pci_init_one(dev, &it821x_chipset, itdevs); | 662 | rc = ide_pci_init_one(dev, &it821x_chipset, itdevs); |
653 | if (rc) | 663 | if (rc) |
654 | kfree(itdevs); | 664 | kfree(itdevs); |
@@ -668,6 +678,7 @@ static void __devexit it821x_remove(struct pci_dev *dev) | |||
668 | static const struct pci_device_id it821x_pci_tbl[] = { | 678 | static const struct pci_device_id it821x_pci_tbl[] = { |
669 | { PCI_VDEVICE(ITE, PCI_DEVICE_ID_ITE_8211), 0 }, | 679 | { PCI_VDEVICE(ITE, PCI_DEVICE_ID_ITE_8211), 0 }, |
670 | { PCI_VDEVICE(ITE, PCI_DEVICE_ID_ITE_8212), 0 }, | 680 | { PCI_VDEVICE(ITE, PCI_DEVICE_ID_ITE_8212), 0 }, |
681 | { PCI_VDEVICE(RDC, PCI_DEVICE_ID_RDC_D1010), QUIRK_VORTEX86 }, | ||
671 | { 0, }, | 682 | { 0, }, |
672 | }; | 683 | }; |
673 | 684 | ||
diff --git a/drivers/ide/sl82c105.c b/drivers/ide/sl82c105.c index 48cc748c5043..6297956507c0 100644 --- a/drivers/ide/sl82c105.c +++ b/drivers/ide/sl82c105.c | |||
@@ -310,10 +310,6 @@ static const struct ide_port_info sl82c105_chipset __devinitdata = { | |||
310 | .dma_ops = &sl82c105_dma_ops, | 310 | .dma_ops = &sl82c105_dma_ops, |
311 | .host_flags = IDE_HFLAG_IO_32BIT | | 311 | .host_flags = IDE_HFLAG_IO_32BIT | |
312 | IDE_HFLAG_UNMASK_IRQS | | 312 | IDE_HFLAG_UNMASK_IRQS | |
313 | /* FIXME: check for Compatibility mode in generic IDE PCI code */ | ||
314 | #if defined(CONFIG_LOPEC) || defined(CONFIG_SANDPOINT) | ||
315 | IDE_HFLAG_FORCE_LEGACY_IRQS | | ||
316 | #endif | ||
317 | IDE_HFLAG_SERIALIZE_DMA | | 313 | IDE_HFLAG_SERIALIZE_DMA | |
318 | IDE_HFLAG_NO_AUTODMA, | 314 | IDE_HFLAG_NO_AUTODMA, |
319 | .pio_mask = ATA_PIO5, | 315 | .pio_mask = ATA_PIO5, |
diff --git a/drivers/ide/tx4938ide.c b/drivers/ide/tx4938ide.c index b4ef218072cd..d9095345f7ca 100644 --- a/drivers/ide/tx4938ide.c +++ b/drivers/ide/tx4938ide.c | |||
@@ -202,7 +202,6 @@ static const struct ide_tp_ops tx4938ide_tp_ops = { | |||
202 | .exec_command = ide_exec_command, | 202 | .exec_command = ide_exec_command, |
203 | .read_status = ide_read_status, | 203 | .read_status = ide_read_status, |
204 | .read_altstatus = ide_read_altstatus, | 204 | .read_altstatus = ide_read_altstatus, |
205 | .read_sff_dma_status = ide_read_sff_dma_status, | ||
206 | 205 | ||
207 | .set_irq = ide_set_irq, | 206 | .set_irq = ide_set_irq, |
208 | 207 | ||
diff --git a/drivers/ide/via82cxxx.c b/drivers/ide/via82cxxx.c index fecc0e03c3fc..703c3eeb20a8 100644 --- a/drivers/ide/via82cxxx.c +++ b/drivers/ide/via82cxxx.c | |||
@@ -432,8 +432,6 @@ static int __devinit via_init_one(struct pci_dev *dev, const struct pci_device_i | |||
432 | if (via_clock < 20000 || via_clock > 50000) { | 432 | if (via_clock < 20000 || via_clock > 50000) { |
433 | printk(KERN_WARNING DRV_NAME ": User given PCI clock speed " | 433 | printk(KERN_WARNING DRV_NAME ": User given PCI clock speed " |
434 | "impossible (%d), using 33 MHz instead.\n", via_clock); | 434 | "impossible (%d), using 33 MHz instead.\n", via_clock); |
435 | printk(KERN_WARNING DRV_NAME ": Use ide0=ata66 if you want " | ||
436 | "to assume 80-wire cable.\n"); | ||
437 | via_clock = 33333; | 435 | via_clock = 33333; |
438 | } | 436 | } |
439 | 437 | ||
diff --git a/fs/xfs/linux-2.6/xfs_aops.h b/fs/xfs/linux-2.6/xfs_aops.h index 7b26f5ff9692..1dd528849755 100644 --- a/fs/xfs/linux-2.6/xfs_aops.h +++ b/fs/xfs/linux-2.6/xfs_aops.h | |||
@@ -21,8 +21,6 @@ | |||
21 | extern struct workqueue_struct *xfsdatad_workqueue; | 21 | extern struct workqueue_struct *xfsdatad_workqueue; |
22 | extern mempool_t *xfs_ioend_pool; | 22 | extern mempool_t *xfs_ioend_pool; |
23 | 23 | ||
24 | typedef void (*xfs_ioend_func_t)(void *); | ||
25 | |||
26 | /* | 24 | /* |
27 | * xfs_ioend struct manages large extent writes for XFS. | 25 | * xfs_ioend struct manages large extent writes for XFS. |
28 | * It can manage several multi-page bio's at once. | 26 | * It can manage several multi-page bio's at once. |
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index cb329edc925b..d71dc44e21ed 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c | |||
@@ -166,75 +166,6 @@ test_page_region( | |||
166 | } | 166 | } |
167 | 167 | ||
168 | /* | 168 | /* |
169 | * Mapping of multi-page buffers into contiguous virtual space | ||
170 | */ | ||
171 | |||
172 | typedef struct a_list { | ||
173 | void *vm_addr; | ||
174 | struct a_list *next; | ||
175 | } a_list_t; | ||
176 | |||
177 | static a_list_t *as_free_head; | ||
178 | static int as_list_len; | ||
179 | static DEFINE_SPINLOCK(as_lock); | ||
180 | |||
181 | /* | ||
182 | * Try to batch vunmaps because they are costly. | ||
183 | */ | ||
184 | STATIC void | ||
185 | free_address( | ||
186 | void *addr) | ||
187 | { | ||
188 | a_list_t *aentry; | ||
189 | |||
190 | #ifdef CONFIG_XEN | ||
191 | /* | ||
192 | * Xen needs to be able to make sure it can get an exclusive | ||
193 | * RO mapping of pages it wants to turn into a pagetable. If | ||
194 | * a newly allocated page is also still being vmap()ed by xfs, | ||
195 | * it will cause pagetable construction to fail. This is a | ||
196 | * quick workaround to always eagerly unmap pages so that Xen | ||
197 | * is happy. | ||
198 | */ | ||
199 | vunmap(addr); | ||
200 | return; | ||
201 | #endif | ||
202 | |||
203 | aentry = kmalloc(sizeof(a_list_t), GFP_NOWAIT); | ||
204 | if (likely(aentry)) { | ||
205 | spin_lock(&as_lock); | ||
206 | aentry->next = as_free_head; | ||
207 | aentry->vm_addr = addr; | ||
208 | as_free_head = aentry; | ||
209 | as_list_len++; | ||
210 | spin_unlock(&as_lock); | ||
211 | } else { | ||
212 | vunmap(addr); | ||
213 | } | ||
214 | } | ||
215 | |||
216 | STATIC void | ||
217 | purge_addresses(void) | ||
218 | { | ||
219 | a_list_t *aentry, *old; | ||
220 | |||
221 | if (as_free_head == NULL) | ||
222 | return; | ||
223 | |||
224 | spin_lock(&as_lock); | ||
225 | aentry = as_free_head; | ||
226 | as_free_head = NULL; | ||
227 | as_list_len = 0; | ||
228 | spin_unlock(&as_lock); | ||
229 | |||
230 | while ((old = aentry) != NULL) { | ||
231 | vunmap(aentry->vm_addr); | ||
232 | aentry = aentry->next; | ||
233 | kfree(old); | ||
234 | } | ||
235 | } | ||
236 | |||
237 | /* | ||
238 | * Internal xfs_buf_t object manipulation | 169 | * Internal xfs_buf_t object manipulation |
239 | */ | 170 | */ |
240 | 171 | ||
@@ -333,7 +264,7 @@ xfs_buf_free( | |||
333 | uint i; | 264 | uint i; |
334 | 265 | ||
335 | if ((bp->b_flags & XBF_MAPPED) && (bp->b_page_count > 1)) | 266 | if ((bp->b_flags & XBF_MAPPED) && (bp->b_page_count > 1)) |
336 | free_address(bp->b_addr - bp->b_offset); | 267 | vm_unmap_ram(bp->b_addr - bp->b_offset, bp->b_page_count); |
337 | 268 | ||
338 | for (i = 0; i < bp->b_page_count; i++) { | 269 | for (i = 0; i < bp->b_page_count; i++) { |
339 | struct page *page = bp->b_pages[i]; | 270 | struct page *page = bp->b_pages[i]; |
@@ -455,10 +386,8 @@ _xfs_buf_map_pages( | |||
455 | bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; | 386 | bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; |
456 | bp->b_flags |= XBF_MAPPED; | 387 | bp->b_flags |= XBF_MAPPED; |
457 | } else if (flags & XBF_MAPPED) { | 388 | } else if (flags & XBF_MAPPED) { |
458 | if (as_list_len > 64) | 389 | bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, |
459 | purge_addresses(); | 390 | -1, PAGE_KERNEL); |
460 | bp->b_addr = vmap(bp->b_pages, bp->b_page_count, | ||
461 | VM_MAP, PAGE_KERNEL); | ||
462 | if (unlikely(bp->b_addr == NULL)) | 391 | if (unlikely(bp->b_addr == NULL)) |
463 | return -ENOMEM; | 392 | return -ENOMEM; |
464 | bp->b_addr += bp->b_offset; | 393 | bp->b_addr += bp->b_offset; |
@@ -1743,8 +1672,6 @@ xfsbufd( | |||
1743 | count++; | 1672 | count++; |
1744 | } | 1673 | } |
1745 | 1674 | ||
1746 | if (as_list_len > 0) | ||
1747 | purge_addresses(); | ||
1748 | if (count) | 1675 | if (count) |
1749 | blk_run_address_space(target->bt_mapping); | 1676 | blk_run_address_space(target->bt_mapping); |
1750 | 1677 | ||
diff --git a/fs/xfs/linux-2.6/xfs_export.c b/fs/xfs/linux-2.6/xfs_export.c index 595751f78350..87b8cbd23d4b 100644 --- a/fs/xfs/linux-2.6/xfs_export.c +++ b/fs/xfs/linux-2.6/xfs_export.c | |||
@@ -126,11 +126,26 @@ xfs_nfs_get_inode( | |||
126 | if (ino == 0) | 126 | if (ino == 0) |
127 | return ERR_PTR(-ESTALE); | 127 | return ERR_PTR(-ESTALE); |
128 | 128 | ||
129 | error = xfs_iget(mp, NULL, ino, 0, XFS_ILOCK_SHARED, &ip, 0); | 129 | /* |
130 | if (error) | 130 | * The XFS_IGET_BULKSTAT means that an invalid inode number is just |
131 | * fine and not an indication of a corrupted filesystem. Because | ||
132 | * clients can send any kind of invalid file handle, e.g. after | ||
133 | * a restore on the server we have to deal with this case gracefully. | ||
134 | */ | ||
135 | error = xfs_iget(mp, NULL, ino, XFS_IGET_BULKSTAT, | ||
136 | XFS_ILOCK_SHARED, &ip, 0); | ||
137 | if (error) { | ||
138 | /* | ||
139 | * EINVAL means the inode cluster doesn't exist anymore. | ||
140 | * This implies the filehandle is stale, so we should | ||
141 | * translate it here. | ||
142 | * We don't use ESTALE directly down the chain to not | ||
143 | * confuse applications using bulkstat that expect EINVAL. | ||
144 | */ | ||
145 | if (error == EINVAL) | ||
146 | error = ESTALE; | ||
131 | return ERR_PTR(-error); | 147 | return ERR_PTR(-error); |
132 | if (!ip) | 148 | } |
133 | return ERR_PTR(-EIO); | ||
134 | 149 | ||
135 | if (ip->i_d.di_gen != generation) { | 150 | if (ip->i_d.di_gen != generation) { |
136 | xfs_iput_new(ip, XFS_ILOCK_SHARED); | 151 | xfs_iput_new(ip, XFS_ILOCK_SHARED); |
diff --git a/fs/xfs/xfs_acl.h b/fs/xfs/xfs_acl.h index a4e293b93efa..642f1db4def4 100644 --- a/fs/xfs/xfs_acl.h +++ b/fs/xfs/xfs_acl.h | |||
@@ -22,7 +22,6 @@ | |||
22 | * Access Control Lists | 22 | * Access Control Lists |
23 | */ | 23 | */ |
24 | typedef __uint16_t xfs_acl_perm_t; | 24 | typedef __uint16_t xfs_acl_perm_t; |
25 | typedef __int32_t xfs_acl_type_t; | ||
26 | typedef __int32_t xfs_acl_tag_t; | 25 | typedef __int32_t xfs_acl_tag_t; |
27 | typedef __int32_t xfs_acl_id_t; | 26 | typedef __int32_t xfs_acl_id_t; |
28 | 27 | ||
diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h index f2e21817a226..d3b3cf742999 100644 --- a/fs/xfs/xfs_ag.h +++ b/fs/xfs/xfs_ag.h | |||
@@ -231,7 +231,7 @@ typedef struct xfs_perag | |||
231 | #define XFS_FSB_TO_AGNO(mp,fsbno) \ | 231 | #define XFS_FSB_TO_AGNO(mp,fsbno) \ |
232 | ((xfs_agnumber_t)((fsbno) >> (mp)->m_sb.sb_agblklog)) | 232 | ((xfs_agnumber_t)((fsbno) >> (mp)->m_sb.sb_agblklog)) |
233 | #define XFS_FSB_TO_AGBNO(mp,fsbno) \ | 233 | #define XFS_FSB_TO_AGBNO(mp,fsbno) \ |
234 | ((xfs_agblock_t)((fsbno) & XFS_MASK32LO((mp)->m_sb.sb_agblklog))) | 234 | ((xfs_agblock_t)((fsbno) & xfs_mask32lo((mp)->m_sb.sb_agblklog))) |
235 | #define XFS_AGB_TO_DADDR(mp,agno,agbno) \ | 235 | #define XFS_AGB_TO_DADDR(mp,agno,agbno) \ |
236 | ((xfs_daddr_t)XFS_FSB_TO_BB(mp, \ | 236 | ((xfs_daddr_t)XFS_FSB_TO_BB(mp, \ |
237 | (xfs_fsblock_t)(agno) * (mp)->m_sb.sb_agblocks + (agbno))) | 237 | (xfs_fsblock_t)(agno) * (mp)->m_sb.sb_agblocks + (agbno))) |
diff --git a/fs/xfs/xfs_attr_leaf.c b/fs/xfs/xfs_attr_leaf.c index 79da6b2ea99e..6c323f8a4cd1 100644 --- a/fs/xfs/xfs_attr_leaf.c +++ b/fs/xfs/xfs_attr_leaf.c | |||
@@ -736,7 +736,7 @@ xfs_attr_shortform_allfit(xfs_dabuf_t *bp, xfs_inode_t *dp) | |||
736 | continue; /* don't copy partial entries */ | 736 | continue; /* don't copy partial entries */ |
737 | if (!(entry->flags & XFS_ATTR_LOCAL)) | 737 | if (!(entry->flags & XFS_ATTR_LOCAL)) |
738 | return(0); | 738 | return(0); |
739 | name_loc = XFS_ATTR_LEAF_NAME_LOCAL(leaf, i); | 739 | name_loc = xfs_attr_leaf_name_local(leaf, i); |
740 | if (name_loc->namelen >= XFS_ATTR_SF_ENTSIZE_MAX) | 740 | if (name_loc->namelen >= XFS_ATTR_SF_ENTSIZE_MAX) |
741 | return(0); | 741 | return(0); |
742 | if (be16_to_cpu(name_loc->valuelen) >= XFS_ATTR_SF_ENTSIZE_MAX) | 742 | if (be16_to_cpu(name_loc->valuelen) >= XFS_ATTR_SF_ENTSIZE_MAX) |
@@ -823,7 +823,7 @@ xfs_attr_leaf_to_shortform(xfs_dabuf_t *bp, xfs_da_args_t *args, int forkoff) | |||
823 | if (!entry->nameidx) | 823 | if (!entry->nameidx) |
824 | continue; | 824 | continue; |
825 | ASSERT(entry->flags & XFS_ATTR_LOCAL); | 825 | ASSERT(entry->flags & XFS_ATTR_LOCAL); |
826 | name_loc = XFS_ATTR_LEAF_NAME_LOCAL(leaf, i); | 826 | name_loc = xfs_attr_leaf_name_local(leaf, i); |
827 | nargs.name = (char *)name_loc->nameval; | 827 | nargs.name = (char *)name_loc->nameval; |
828 | nargs.namelen = name_loc->namelen; | 828 | nargs.namelen = name_loc->namelen; |
829 | nargs.value = (char *)&name_loc->nameval[nargs.namelen]; | 829 | nargs.value = (char *)&name_loc->nameval[nargs.namelen]; |
@@ -1141,14 +1141,14 @@ xfs_attr_leaf_add_work(xfs_dabuf_t *bp, xfs_da_args_t *args, int mapindex) | |||
1141 | * as part of this transaction (a split operation for example). | 1141 | * as part of this transaction (a split operation for example). |
1142 | */ | 1142 | */ |
1143 | if (entry->flags & XFS_ATTR_LOCAL) { | 1143 | if (entry->flags & XFS_ATTR_LOCAL) { |
1144 | name_loc = XFS_ATTR_LEAF_NAME_LOCAL(leaf, args->index); | 1144 | name_loc = xfs_attr_leaf_name_local(leaf, args->index); |
1145 | name_loc->namelen = args->namelen; | 1145 | name_loc->namelen = args->namelen; |
1146 | name_loc->valuelen = cpu_to_be16(args->valuelen); | 1146 | name_loc->valuelen = cpu_to_be16(args->valuelen); |
1147 | memcpy((char *)name_loc->nameval, args->name, args->namelen); | 1147 | memcpy((char *)name_loc->nameval, args->name, args->namelen); |
1148 | memcpy((char *)&name_loc->nameval[args->namelen], args->value, | 1148 | memcpy((char *)&name_loc->nameval[args->namelen], args->value, |
1149 | be16_to_cpu(name_loc->valuelen)); | 1149 | be16_to_cpu(name_loc->valuelen)); |
1150 | } else { | 1150 | } else { |
1151 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf, args->index); | 1151 | name_rmt = xfs_attr_leaf_name_remote(leaf, args->index); |
1152 | name_rmt->namelen = args->namelen; | 1152 | name_rmt->namelen = args->namelen; |
1153 | memcpy((char *)name_rmt->name, args->name, args->namelen); | 1153 | memcpy((char *)name_rmt->name, args->name, args->namelen); |
1154 | entry->flags |= XFS_ATTR_INCOMPLETE; | 1154 | entry->flags |= XFS_ATTR_INCOMPLETE; |
@@ -1159,7 +1159,7 @@ xfs_attr_leaf_add_work(xfs_dabuf_t *bp, xfs_da_args_t *args, int mapindex) | |||
1159 | args->rmtblkcnt = XFS_B_TO_FSB(mp, args->valuelen); | 1159 | args->rmtblkcnt = XFS_B_TO_FSB(mp, args->valuelen); |
1160 | } | 1160 | } |
1161 | xfs_da_log_buf(args->trans, bp, | 1161 | xfs_da_log_buf(args->trans, bp, |
1162 | XFS_DA_LOGRANGE(leaf, XFS_ATTR_LEAF_NAME(leaf, args->index), | 1162 | XFS_DA_LOGRANGE(leaf, xfs_attr_leaf_name(leaf, args->index), |
1163 | xfs_attr_leaf_entsize(leaf, args->index))); | 1163 | xfs_attr_leaf_entsize(leaf, args->index))); |
1164 | 1164 | ||
1165 | /* | 1165 | /* |
@@ -1749,10 +1749,10 @@ xfs_attr_leaf_remove(xfs_dabuf_t *bp, xfs_da_args_t *args) | |||
1749 | /* | 1749 | /* |
1750 | * Compress the remaining entries and zero out the removed stuff. | 1750 | * Compress the remaining entries and zero out the removed stuff. |
1751 | */ | 1751 | */ |
1752 | memset(XFS_ATTR_LEAF_NAME(leaf, args->index), 0, entsize); | 1752 | memset(xfs_attr_leaf_name(leaf, args->index), 0, entsize); |
1753 | be16_add_cpu(&hdr->usedbytes, -entsize); | 1753 | be16_add_cpu(&hdr->usedbytes, -entsize); |
1754 | xfs_da_log_buf(args->trans, bp, | 1754 | xfs_da_log_buf(args->trans, bp, |
1755 | XFS_DA_LOGRANGE(leaf, XFS_ATTR_LEAF_NAME(leaf, args->index), | 1755 | XFS_DA_LOGRANGE(leaf, xfs_attr_leaf_name(leaf, args->index), |
1756 | entsize)); | 1756 | entsize)); |
1757 | 1757 | ||
1758 | tmp = (be16_to_cpu(hdr->count) - args->index) | 1758 | tmp = (be16_to_cpu(hdr->count) - args->index) |
@@ -1985,7 +1985,7 @@ xfs_attr_leaf_lookup_int(xfs_dabuf_t *bp, xfs_da_args_t *args) | |||
1985 | continue; | 1985 | continue; |
1986 | } | 1986 | } |
1987 | if (entry->flags & XFS_ATTR_LOCAL) { | 1987 | if (entry->flags & XFS_ATTR_LOCAL) { |
1988 | name_loc = XFS_ATTR_LEAF_NAME_LOCAL(leaf, probe); | 1988 | name_loc = xfs_attr_leaf_name_local(leaf, probe); |
1989 | if (name_loc->namelen != args->namelen) | 1989 | if (name_loc->namelen != args->namelen) |
1990 | continue; | 1990 | continue; |
1991 | if (memcmp(args->name, (char *)name_loc->nameval, args->namelen) != 0) | 1991 | if (memcmp(args->name, (char *)name_loc->nameval, args->namelen) != 0) |
@@ -1995,7 +1995,7 @@ xfs_attr_leaf_lookup_int(xfs_dabuf_t *bp, xfs_da_args_t *args) | |||
1995 | args->index = probe; | 1995 | args->index = probe; |
1996 | return(XFS_ERROR(EEXIST)); | 1996 | return(XFS_ERROR(EEXIST)); |
1997 | } else { | 1997 | } else { |
1998 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf, probe); | 1998 | name_rmt = xfs_attr_leaf_name_remote(leaf, probe); |
1999 | if (name_rmt->namelen != args->namelen) | 1999 | if (name_rmt->namelen != args->namelen) |
2000 | continue; | 2000 | continue; |
2001 | if (memcmp(args->name, (char *)name_rmt->name, | 2001 | if (memcmp(args->name, (char *)name_rmt->name, |
@@ -2035,7 +2035,7 @@ xfs_attr_leaf_getvalue(xfs_dabuf_t *bp, xfs_da_args_t *args) | |||
2035 | 2035 | ||
2036 | entry = &leaf->entries[args->index]; | 2036 | entry = &leaf->entries[args->index]; |
2037 | if (entry->flags & XFS_ATTR_LOCAL) { | 2037 | if (entry->flags & XFS_ATTR_LOCAL) { |
2038 | name_loc = XFS_ATTR_LEAF_NAME_LOCAL(leaf, args->index); | 2038 | name_loc = xfs_attr_leaf_name_local(leaf, args->index); |
2039 | ASSERT(name_loc->namelen == args->namelen); | 2039 | ASSERT(name_loc->namelen == args->namelen); |
2040 | ASSERT(memcmp(args->name, name_loc->nameval, args->namelen) == 0); | 2040 | ASSERT(memcmp(args->name, name_loc->nameval, args->namelen) == 0); |
2041 | valuelen = be16_to_cpu(name_loc->valuelen); | 2041 | valuelen = be16_to_cpu(name_loc->valuelen); |
@@ -2050,7 +2050,7 @@ xfs_attr_leaf_getvalue(xfs_dabuf_t *bp, xfs_da_args_t *args) | |||
2050 | args->valuelen = valuelen; | 2050 | args->valuelen = valuelen; |
2051 | memcpy(args->value, &name_loc->nameval[args->namelen], valuelen); | 2051 | memcpy(args->value, &name_loc->nameval[args->namelen], valuelen); |
2052 | } else { | 2052 | } else { |
2053 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf, args->index); | 2053 | name_rmt = xfs_attr_leaf_name_remote(leaf, args->index); |
2054 | ASSERT(name_rmt->namelen == args->namelen); | 2054 | ASSERT(name_rmt->namelen == args->namelen); |
2055 | ASSERT(memcmp(args->name, name_rmt->name, args->namelen) == 0); | 2055 | ASSERT(memcmp(args->name, name_rmt->name, args->namelen) == 0); |
2056 | valuelen = be32_to_cpu(name_rmt->valuelen); | 2056 | valuelen = be32_to_cpu(name_rmt->valuelen); |
@@ -2143,7 +2143,7 @@ xfs_attr_leaf_moveents(xfs_attr_leafblock_t *leaf_s, int start_s, | |||
2143 | * off for 6.2, should be revisited later. | 2143 | * off for 6.2, should be revisited later. |
2144 | */ | 2144 | */ |
2145 | if (entry_s->flags & XFS_ATTR_INCOMPLETE) { /* skip partials? */ | 2145 | if (entry_s->flags & XFS_ATTR_INCOMPLETE) { /* skip partials? */ |
2146 | memset(XFS_ATTR_LEAF_NAME(leaf_s, start_s + i), 0, tmp); | 2146 | memset(xfs_attr_leaf_name(leaf_s, start_s + i), 0, tmp); |
2147 | be16_add_cpu(&hdr_s->usedbytes, -tmp); | 2147 | be16_add_cpu(&hdr_s->usedbytes, -tmp); |
2148 | be16_add_cpu(&hdr_s->count, -1); | 2148 | be16_add_cpu(&hdr_s->count, -1); |
2149 | entry_d--; /* to compensate for ++ in loop hdr */ | 2149 | entry_d--; /* to compensate for ++ in loop hdr */ |
@@ -2160,11 +2160,11 @@ xfs_attr_leaf_moveents(xfs_attr_leafblock_t *leaf_s, int start_s, | |||
2160 | entry_d->flags = entry_s->flags; | 2160 | entry_d->flags = entry_s->flags; |
2161 | ASSERT(be16_to_cpu(entry_d->nameidx) + tmp | 2161 | ASSERT(be16_to_cpu(entry_d->nameidx) + tmp |
2162 | <= XFS_LBSIZE(mp)); | 2162 | <= XFS_LBSIZE(mp)); |
2163 | memmove(XFS_ATTR_LEAF_NAME(leaf_d, desti), | 2163 | memmove(xfs_attr_leaf_name(leaf_d, desti), |
2164 | XFS_ATTR_LEAF_NAME(leaf_s, start_s + i), tmp); | 2164 | xfs_attr_leaf_name(leaf_s, start_s + i), tmp); |
2165 | ASSERT(be16_to_cpu(entry_s->nameidx) + tmp | 2165 | ASSERT(be16_to_cpu(entry_s->nameidx) + tmp |
2166 | <= XFS_LBSIZE(mp)); | 2166 | <= XFS_LBSIZE(mp)); |
2167 | memset(XFS_ATTR_LEAF_NAME(leaf_s, start_s + i), 0, tmp); | 2167 | memset(xfs_attr_leaf_name(leaf_s, start_s + i), 0, tmp); |
2168 | be16_add_cpu(&hdr_s->usedbytes, -tmp); | 2168 | be16_add_cpu(&hdr_s->usedbytes, -tmp); |
2169 | be16_add_cpu(&hdr_d->usedbytes, tmp); | 2169 | be16_add_cpu(&hdr_d->usedbytes, tmp); |
2170 | be16_add_cpu(&hdr_s->count, -1); | 2170 | be16_add_cpu(&hdr_s->count, -1); |
@@ -2276,12 +2276,12 @@ xfs_attr_leaf_entsize(xfs_attr_leafblock_t *leaf, int index) | |||
2276 | 2276 | ||
2277 | ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); | 2277 | ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); |
2278 | if (leaf->entries[index].flags & XFS_ATTR_LOCAL) { | 2278 | if (leaf->entries[index].flags & XFS_ATTR_LOCAL) { |
2279 | name_loc = XFS_ATTR_LEAF_NAME_LOCAL(leaf, index); | 2279 | name_loc = xfs_attr_leaf_name_local(leaf, index); |
2280 | size = XFS_ATTR_LEAF_ENTSIZE_LOCAL(name_loc->namelen, | 2280 | size = xfs_attr_leaf_entsize_local(name_loc->namelen, |
2281 | be16_to_cpu(name_loc->valuelen)); | 2281 | be16_to_cpu(name_loc->valuelen)); |
2282 | } else { | 2282 | } else { |
2283 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf, index); | 2283 | name_rmt = xfs_attr_leaf_name_remote(leaf, index); |
2284 | size = XFS_ATTR_LEAF_ENTSIZE_REMOTE(name_rmt->namelen); | 2284 | size = xfs_attr_leaf_entsize_remote(name_rmt->namelen); |
2285 | } | 2285 | } |
2286 | return(size); | 2286 | return(size); |
2287 | } | 2287 | } |
@@ -2297,13 +2297,13 @@ xfs_attr_leaf_newentsize(int namelen, int valuelen, int blocksize, int *local) | |||
2297 | { | 2297 | { |
2298 | int size; | 2298 | int size; |
2299 | 2299 | ||
2300 | size = XFS_ATTR_LEAF_ENTSIZE_LOCAL(namelen, valuelen); | 2300 | size = xfs_attr_leaf_entsize_local(namelen, valuelen); |
2301 | if (size < XFS_ATTR_LEAF_ENTSIZE_LOCAL_MAX(blocksize)) { | 2301 | if (size < xfs_attr_leaf_entsize_local_max(blocksize)) { |
2302 | if (local) { | 2302 | if (local) { |
2303 | *local = 1; | 2303 | *local = 1; |
2304 | } | 2304 | } |
2305 | } else { | 2305 | } else { |
2306 | size = XFS_ATTR_LEAF_ENTSIZE_REMOTE(namelen); | 2306 | size = xfs_attr_leaf_entsize_remote(namelen); |
2307 | if (local) { | 2307 | if (local) { |
2308 | *local = 0; | 2308 | *local = 0; |
2309 | } | 2309 | } |
@@ -2372,7 +2372,7 @@ xfs_attr_leaf_list_int(xfs_dabuf_t *bp, xfs_attr_list_context_t *context) | |||
2372 | 2372 | ||
2373 | if (entry->flags & XFS_ATTR_LOCAL) { | 2373 | if (entry->flags & XFS_ATTR_LOCAL) { |
2374 | xfs_attr_leaf_name_local_t *name_loc = | 2374 | xfs_attr_leaf_name_local_t *name_loc = |
2375 | XFS_ATTR_LEAF_NAME_LOCAL(leaf, i); | 2375 | xfs_attr_leaf_name_local(leaf, i); |
2376 | 2376 | ||
2377 | retval = context->put_listent(context, | 2377 | retval = context->put_listent(context, |
2378 | entry->flags, | 2378 | entry->flags, |
@@ -2384,7 +2384,7 @@ xfs_attr_leaf_list_int(xfs_dabuf_t *bp, xfs_attr_list_context_t *context) | |||
2384 | return retval; | 2384 | return retval; |
2385 | } else { | 2385 | } else { |
2386 | xfs_attr_leaf_name_remote_t *name_rmt = | 2386 | xfs_attr_leaf_name_remote_t *name_rmt = |
2387 | XFS_ATTR_LEAF_NAME_REMOTE(leaf, i); | 2387 | xfs_attr_leaf_name_remote(leaf, i); |
2388 | 2388 | ||
2389 | int valuelen = be32_to_cpu(name_rmt->valuelen); | 2389 | int valuelen = be32_to_cpu(name_rmt->valuelen); |
2390 | 2390 | ||
@@ -2468,11 +2468,11 @@ xfs_attr_leaf_clearflag(xfs_da_args_t *args) | |||
2468 | 2468 | ||
2469 | #ifdef DEBUG | 2469 | #ifdef DEBUG |
2470 | if (entry->flags & XFS_ATTR_LOCAL) { | 2470 | if (entry->flags & XFS_ATTR_LOCAL) { |
2471 | name_loc = XFS_ATTR_LEAF_NAME_LOCAL(leaf, args->index); | 2471 | name_loc = xfs_attr_leaf_name_local(leaf, args->index); |
2472 | namelen = name_loc->namelen; | 2472 | namelen = name_loc->namelen; |
2473 | name = (char *)name_loc->nameval; | 2473 | name = (char *)name_loc->nameval; |
2474 | } else { | 2474 | } else { |
2475 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf, args->index); | 2475 | name_rmt = xfs_attr_leaf_name_remote(leaf, args->index); |
2476 | namelen = name_rmt->namelen; | 2476 | namelen = name_rmt->namelen; |
2477 | name = (char *)name_rmt->name; | 2477 | name = (char *)name_rmt->name; |
2478 | } | 2478 | } |
@@ -2487,7 +2487,7 @@ xfs_attr_leaf_clearflag(xfs_da_args_t *args) | |||
2487 | 2487 | ||
2488 | if (args->rmtblkno) { | 2488 | if (args->rmtblkno) { |
2489 | ASSERT((entry->flags & XFS_ATTR_LOCAL) == 0); | 2489 | ASSERT((entry->flags & XFS_ATTR_LOCAL) == 0); |
2490 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf, args->index); | 2490 | name_rmt = xfs_attr_leaf_name_remote(leaf, args->index); |
2491 | name_rmt->valueblk = cpu_to_be32(args->rmtblkno); | 2491 | name_rmt->valueblk = cpu_to_be32(args->rmtblkno); |
2492 | name_rmt->valuelen = cpu_to_be32(args->valuelen); | 2492 | name_rmt->valuelen = cpu_to_be32(args->valuelen); |
2493 | xfs_da_log_buf(args->trans, bp, | 2493 | xfs_da_log_buf(args->trans, bp, |
@@ -2534,7 +2534,7 @@ xfs_attr_leaf_setflag(xfs_da_args_t *args) | |||
2534 | xfs_da_log_buf(args->trans, bp, | 2534 | xfs_da_log_buf(args->trans, bp, |
2535 | XFS_DA_LOGRANGE(leaf, entry, sizeof(*entry))); | 2535 | XFS_DA_LOGRANGE(leaf, entry, sizeof(*entry))); |
2536 | if ((entry->flags & XFS_ATTR_LOCAL) == 0) { | 2536 | if ((entry->flags & XFS_ATTR_LOCAL) == 0) { |
2537 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf, args->index); | 2537 | name_rmt = xfs_attr_leaf_name_remote(leaf, args->index); |
2538 | name_rmt->valueblk = 0; | 2538 | name_rmt->valueblk = 0; |
2539 | name_rmt->valuelen = 0; | 2539 | name_rmt->valuelen = 0; |
2540 | xfs_da_log_buf(args->trans, bp, | 2540 | xfs_da_log_buf(args->trans, bp, |
@@ -2607,20 +2607,20 @@ xfs_attr_leaf_flipflags(xfs_da_args_t *args) | |||
2607 | 2607 | ||
2608 | #ifdef DEBUG | 2608 | #ifdef DEBUG |
2609 | if (entry1->flags & XFS_ATTR_LOCAL) { | 2609 | if (entry1->flags & XFS_ATTR_LOCAL) { |
2610 | name_loc = XFS_ATTR_LEAF_NAME_LOCAL(leaf1, args->index); | 2610 | name_loc = xfs_attr_leaf_name_local(leaf1, args->index); |
2611 | namelen1 = name_loc->namelen; | 2611 | namelen1 = name_loc->namelen; |
2612 | name1 = (char *)name_loc->nameval; | 2612 | name1 = (char *)name_loc->nameval; |
2613 | } else { | 2613 | } else { |
2614 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf1, args->index); | 2614 | name_rmt = xfs_attr_leaf_name_remote(leaf1, args->index); |
2615 | namelen1 = name_rmt->namelen; | 2615 | namelen1 = name_rmt->namelen; |
2616 | name1 = (char *)name_rmt->name; | 2616 | name1 = (char *)name_rmt->name; |
2617 | } | 2617 | } |
2618 | if (entry2->flags & XFS_ATTR_LOCAL) { | 2618 | if (entry2->flags & XFS_ATTR_LOCAL) { |
2619 | name_loc = XFS_ATTR_LEAF_NAME_LOCAL(leaf2, args->index2); | 2619 | name_loc = xfs_attr_leaf_name_local(leaf2, args->index2); |
2620 | namelen2 = name_loc->namelen; | 2620 | namelen2 = name_loc->namelen; |
2621 | name2 = (char *)name_loc->nameval; | 2621 | name2 = (char *)name_loc->nameval; |
2622 | } else { | 2622 | } else { |
2623 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf2, args->index2); | 2623 | name_rmt = xfs_attr_leaf_name_remote(leaf2, args->index2); |
2624 | namelen2 = name_rmt->namelen; | 2624 | namelen2 = name_rmt->namelen; |
2625 | name2 = (char *)name_rmt->name; | 2625 | name2 = (char *)name_rmt->name; |
2626 | } | 2626 | } |
@@ -2637,7 +2637,7 @@ xfs_attr_leaf_flipflags(xfs_da_args_t *args) | |||
2637 | XFS_DA_LOGRANGE(leaf1, entry1, sizeof(*entry1))); | 2637 | XFS_DA_LOGRANGE(leaf1, entry1, sizeof(*entry1))); |
2638 | if (args->rmtblkno) { | 2638 | if (args->rmtblkno) { |
2639 | ASSERT((entry1->flags & XFS_ATTR_LOCAL) == 0); | 2639 | ASSERT((entry1->flags & XFS_ATTR_LOCAL) == 0); |
2640 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf1, args->index); | 2640 | name_rmt = xfs_attr_leaf_name_remote(leaf1, args->index); |
2641 | name_rmt->valueblk = cpu_to_be32(args->rmtblkno); | 2641 | name_rmt->valueblk = cpu_to_be32(args->rmtblkno); |
2642 | name_rmt->valuelen = cpu_to_be32(args->valuelen); | 2642 | name_rmt->valuelen = cpu_to_be32(args->valuelen); |
2643 | xfs_da_log_buf(args->trans, bp1, | 2643 | xfs_da_log_buf(args->trans, bp1, |
@@ -2648,7 +2648,7 @@ xfs_attr_leaf_flipflags(xfs_da_args_t *args) | |||
2648 | xfs_da_log_buf(args->trans, bp2, | 2648 | xfs_da_log_buf(args->trans, bp2, |
2649 | XFS_DA_LOGRANGE(leaf2, entry2, sizeof(*entry2))); | 2649 | XFS_DA_LOGRANGE(leaf2, entry2, sizeof(*entry2))); |
2650 | if ((entry2->flags & XFS_ATTR_LOCAL) == 0) { | 2650 | if ((entry2->flags & XFS_ATTR_LOCAL) == 0) { |
2651 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf2, args->index2); | 2651 | name_rmt = xfs_attr_leaf_name_remote(leaf2, args->index2); |
2652 | name_rmt->valueblk = 0; | 2652 | name_rmt->valueblk = 0; |
2653 | name_rmt->valuelen = 0; | 2653 | name_rmt->valuelen = 0; |
2654 | xfs_da_log_buf(args->trans, bp2, | 2654 | xfs_da_log_buf(args->trans, bp2, |
@@ -2855,7 +2855,7 @@ xfs_attr_leaf_inactive(xfs_trans_t **trans, xfs_inode_t *dp, xfs_dabuf_t *bp) | |||
2855 | for (i = 0; i < be16_to_cpu(leaf->hdr.count); entry++, i++) { | 2855 | for (i = 0; i < be16_to_cpu(leaf->hdr.count); entry++, i++) { |
2856 | if (be16_to_cpu(entry->nameidx) && | 2856 | if (be16_to_cpu(entry->nameidx) && |
2857 | ((entry->flags & XFS_ATTR_LOCAL) == 0)) { | 2857 | ((entry->flags & XFS_ATTR_LOCAL) == 0)) { |
2858 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf, i); | 2858 | name_rmt = xfs_attr_leaf_name_remote(leaf, i); |
2859 | if (name_rmt->valueblk) | 2859 | if (name_rmt->valueblk) |
2860 | count++; | 2860 | count++; |
2861 | } | 2861 | } |
@@ -2883,7 +2883,7 @@ xfs_attr_leaf_inactive(xfs_trans_t **trans, xfs_inode_t *dp, xfs_dabuf_t *bp) | |||
2883 | for (i = 0; i < be16_to_cpu(leaf->hdr.count); entry++, i++) { | 2883 | for (i = 0; i < be16_to_cpu(leaf->hdr.count); entry++, i++) { |
2884 | if (be16_to_cpu(entry->nameidx) && | 2884 | if (be16_to_cpu(entry->nameidx) && |
2885 | ((entry->flags & XFS_ATTR_LOCAL) == 0)) { | 2885 | ((entry->flags & XFS_ATTR_LOCAL) == 0)) { |
2886 | name_rmt = XFS_ATTR_LEAF_NAME_REMOTE(leaf, i); | 2886 | name_rmt = xfs_attr_leaf_name_remote(leaf, i); |
2887 | if (name_rmt->valueblk) { | 2887 | if (name_rmt->valueblk) { |
2888 | lp->valueblk = be32_to_cpu(name_rmt->valueblk); | 2888 | lp->valueblk = be32_to_cpu(name_rmt->valueblk); |
2889 | lp->valuelen = XFS_B_TO_FSB(dp->i_mount, | 2889 | lp->valuelen = XFS_B_TO_FSB(dp->i_mount, |
diff --git a/fs/xfs/xfs_attr_leaf.h b/fs/xfs/xfs_attr_leaf.h index 83e9af417ca2..9c7d22fdcf4d 100644 --- a/fs/xfs/xfs_attr_leaf.h +++ b/fs/xfs/xfs_attr_leaf.h | |||
@@ -151,8 +151,6 @@ typedef struct xfs_attr_leafblock { | |||
151 | /* | 151 | /* |
152 | * Cast typed pointers for "local" and "remote" name/value structs. | 152 | * Cast typed pointers for "local" and "remote" name/value structs. |
153 | */ | 153 | */ |
154 | #define XFS_ATTR_LEAF_NAME_REMOTE(leafp,idx) \ | ||
155 | xfs_attr_leaf_name_remote(leafp,idx) | ||
156 | static inline xfs_attr_leaf_name_remote_t * | 154 | static inline xfs_attr_leaf_name_remote_t * |
157 | xfs_attr_leaf_name_remote(xfs_attr_leafblock_t *leafp, int idx) | 155 | xfs_attr_leaf_name_remote(xfs_attr_leafblock_t *leafp, int idx) |
158 | { | 156 | { |
@@ -160,8 +158,6 @@ xfs_attr_leaf_name_remote(xfs_attr_leafblock_t *leafp, int idx) | |||
160 | &((char *)leafp)[be16_to_cpu(leafp->entries[idx].nameidx)]; | 158 | &((char *)leafp)[be16_to_cpu(leafp->entries[idx].nameidx)]; |
161 | } | 159 | } |
162 | 160 | ||
163 | #define XFS_ATTR_LEAF_NAME_LOCAL(leafp,idx) \ | ||
164 | xfs_attr_leaf_name_local(leafp,idx) | ||
165 | static inline xfs_attr_leaf_name_local_t * | 161 | static inline xfs_attr_leaf_name_local_t * |
166 | xfs_attr_leaf_name_local(xfs_attr_leafblock_t *leafp, int idx) | 162 | xfs_attr_leaf_name_local(xfs_attr_leafblock_t *leafp, int idx) |
167 | { | 163 | { |
@@ -169,8 +165,6 @@ xfs_attr_leaf_name_local(xfs_attr_leafblock_t *leafp, int idx) | |||
169 | &((char *)leafp)[be16_to_cpu(leafp->entries[idx].nameidx)]; | 165 | &((char *)leafp)[be16_to_cpu(leafp->entries[idx].nameidx)]; |
170 | } | 166 | } |
171 | 167 | ||
172 | #define XFS_ATTR_LEAF_NAME(leafp,idx) \ | ||
173 | xfs_attr_leaf_name(leafp,idx) | ||
174 | static inline char *xfs_attr_leaf_name(xfs_attr_leafblock_t *leafp, int idx) | 168 | static inline char *xfs_attr_leaf_name(xfs_attr_leafblock_t *leafp, int idx) |
175 | { | 169 | { |
176 | return &((char *)leafp)[be16_to_cpu(leafp->entries[idx].nameidx)]; | 170 | return &((char *)leafp)[be16_to_cpu(leafp->entries[idx].nameidx)]; |
@@ -181,24 +175,18 @@ static inline char *xfs_attr_leaf_name(xfs_attr_leafblock_t *leafp, int idx) | |||
181 | * a "local" name/value structure, a "remote" name/value structure, and | 175 | * a "local" name/value structure, a "remote" name/value structure, and |
182 | * a pointer which might be either. | 176 | * a pointer which might be either. |
183 | */ | 177 | */ |
184 | #define XFS_ATTR_LEAF_ENTSIZE_REMOTE(nlen) \ | ||
185 | xfs_attr_leaf_entsize_remote(nlen) | ||
186 | static inline int xfs_attr_leaf_entsize_remote(int nlen) | 178 | static inline int xfs_attr_leaf_entsize_remote(int nlen) |
187 | { | 179 | { |
188 | return ((uint)sizeof(xfs_attr_leaf_name_remote_t) - 1 + (nlen) + \ | 180 | return ((uint)sizeof(xfs_attr_leaf_name_remote_t) - 1 + (nlen) + \ |
189 | XFS_ATTR_LEAF_NAME_ALIGN - 1) & ~(XFS_ATTR_LEAF_NAME_ALIGN - 1); | 181 | XFS_ATTR_LEAF_NAME_ALIGN - 1) & ~(XFS_ATTR_LEAF_NAME_ALIGN - 1); |
190 | } | 182 | } |
191 | 183 | ||
192 | #define XFS_ATTR_LEAF_ENTSIZE_LOCAL(nlen,vlen) \ | ||
193 | xfs_attr_leaf_entsize_local(nlen,vlen) | ||
194 | static inline int xfs_attr_leaf_entsize_local(int nlen, int vlen) | 184 | static inline int xfs_attr_leaf_entsize_local(int nlen, int vlen) |
195 | { | 185 | { |
196 | return ((uint)sizeof(xfs_attr_leaf_name_local_t) - 1 + (nlen) + (vlen) + | 186 | return ((uint)sizeof(xfs_attr_leaf_name_local_t) - 1 + (nlen) + (vlen) + |
197 | XFS_ATTR_LEAF_NAME_ALIGN - 1) & ~(XFS_ATTR_LEAF_NAME_ALIGN - 1); | 187 | XFS_ATTR_LEAF_NAME_ALIGN - 1) & ~(XFS_ATTR_LEAF_NAME_ALIGN - 1); |
198 | } | 188 | } |
199 | 189 | ||
200 | #define XFS_ATTR_LEAF_ENTSIZE_LOCAL_MAX(bsize) \ | ||
201 | xfs_attr_leaf_entsize_local_max(bsize) | ||
202 | static inline int xfs_attr_leaf_entsize_local_max(int bsize) | 190 | static inline int xfs_attr_leaf_entsize_local_max(int bsize) |
203 | { | 191 | { |
204 | return (((bsize) >> 1) + ((bsize) >> 2)); | 192 | return (((bsize) >> 1) + ((bsize) >> 2)); |
diff --git a/fs/xfs/xfs_bit.h b/fs/xfs/xfs_bit.h index bca7b243c319..f1e3c907044d 100644 --- a/fs/xfs/xfs_bit.h +++ b/fs/xfs/xfs_bit.h | |||
@@ -23,24 +23,16 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | /* | 25 | /* |
26 | * masks with n high/low bits set, 32-bit values & 64-bit values | 26 | * masks with n high/low bits set, 64-bit values |
27 | */ | 27 | */ |
28 | #define XFS_MASK32HI(n) xfs_mask32hi(n) | ||
29 | static inline __uint32_t xfs_mask32hi(int n) | ||
30 | { | ||
31 | return (__uint32_t)-1 << (32 - (n)); | ||
32 | } | ||
33 | #define XFS_MASK64HI(n) xfs_mask64hi(n) | ||
34 | static inline __uint64_t xfs_mask64hi(int n) | 28 | static inline __uint64_t xfs_mask64hi(int n) |
35 | { | 29 | { |
36 | return (__uint64_t)-1 << (64 - (n)); | 30 | return (__uint64_t)-1 << (64 - (n)); |
37 | } | 31 | } |
38 | #define XFS_MASK32LO(n) xfs_mask32lo(n) | ||
39 | static inline __uint32_t xfs_mask32lo(int n) | 32 | static inline __uint32_t xfs_mask32lo(int n) |
40 | { | 33 | { |
41 | return ((__uint32_t)1 << (n)) - 1; | 34 | return ((__uint32_t)1 << (n)) - 1; |
42 | } | 35 | } |
43 | #define XFS_MASK64LO(n) xfs_mask64lo(n) | ||
44 | static inline __uint64_t xfs_mask64lo(int n) | 36 | static inline __uint64_t xfs_mask64lo(int n) |
45 | { | 37 | { |
46 | return ((__uint64_t)1 << (n)) - 1; | 38 | return ((__uint64_t)1 << (n)) - 1; |
diff --git a/fs/xfs/xfs_bmap_btree.c b/fs/xfs/xfs_bmap_btree.c index 8f1ec73725d3..ba6b08c2fb02 100644 --- a/fs/xfs/xfs_bmap_btree.c +++ b/fs/xfs/xfs_bmap_btree.c | |||
@@ -110,16 +110,16 @@ __xfs_bmbt_get_all( | |||
110 | 110 | ||
111 | ext_flag = (int)(l0 >> (64 - BMBT_EXNTFLAG_BITLEN)); | 111 | ext_flag = (int)(l0 >> (64 - BMBT_EXNTFLAG_BITLEN)); |
112 | s->br_startoff = ((xfs_fileoff_t)l0 & | 112 | s->br_startoff = ((xfs_fileoff_t)l0 & |
113 | XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)) >> 9; | 113 | xfs_mask64lo(64 - BMBT_EXNTFLAG_BITLEN)) >> 9; |
114 | #if XFS_BIG_BLKNOS | 114 | #if XFS_BIG_BLKNOS |
115 | s->br_startblock = (((xfs_fsblock_t)l0 & XFS_MASK64LO(9)) << 43) | | 115 | s->br_startblock = (((xfs_fsblock_t)l0 & xfs_mask64lo(9)) << 43) | |
116 | (((xfs_fsblock_t)l1) >> 21); | 116 | (((xfs_fsblock_t)l1) >> 21); |
117 | #else | 117 | #else |
118 | #ifdef DEBUG | 118 | #ifdef DEBUG |
119 | { | 119 | { |
120 | xfs_dfsbno_t b; | 120 | xfs_dfsbno_t b; |
121 | 121 | ||
122 | b = (((xfs_dfsbno_t)l0 & XFS_MASK64LO(9)) << 43) | | 122 | b = (((xfs_dfsbno_t)l0 & xfs_mask64lo(9)) << 43) | |
123 | (((xfs_dfsbno_t)l1) >> 21); | 123 | (((xfs_dfsbno_t)l1) >> 21); |
124 | ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b)); | 124 | ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b)); |
125 | s->br_startblock = (xfs_fsblock_t)b; | 125 | s->br_startblock = (xfs_fsblock_t)b; |
@@ -128,7 +128,7 @@ __xfs_bmbt_get_all( | |||
128 | s->br_startblock = (xfs_fsblock_t)(((xfs_dfsbno_t)l1) >> 21); | 128 | s->br_startblock = (xfs_fsblock_t)(((xfs_dfsbno_t)l1) >> 21); |
129 | #endif /* DEBUG */ | 129 | #endif /* DEBUG */ |
130 | #endif /* XFS_BIG_BLKNOS */ | 130 | #endif /* XFS_BIG_BLKNOS */ |
131 | s->br_blockcount = (xfs_filblks_t)(l1 & XFS_MASK64LO(21)); | 131 | s->br_blockcount = (xfs_filblks_t)(l1 & xfs_mask64lo(21)); |
132 | /* This is xfs_extent_state() in-line */ | 132 | /* This is xfs_extent_state() in-line */ |
133 | if (ext_flag) { | 133 | if (ext_flag) { |
134 | ASSERT(s->br_blockcount != 0); /* saved for DMIG */ | 134 | ASSERT(s->br_blockcount != 0); /* saved for DMIG */ |
@@ -153,7 +153,7 @@ xfs_filblks_t | |||
153 | xfs_bmbt_get_blockcount( | 153 | xfs_bmbt_get_blockcount( |
154 | xfs_bmbt_rec_host_t *r) | 154 | xfs_bmbt_rec_host_t *r) |
155 | { | 155 | { |
156 | return (xfs_filblks_t)(r->l1 & XFS_MASK64LO(21)); | 156 | return (xfs_filblks_t)(r->l1 & xfs_mask64lo(21)); |
157 | } | 157 | } |
158 | 158 | ||
159 | /* | 159 | /* |
@@ -164,13 +164,13 @@ xfs_bmbt_get_startblock( | |||
164 | xfs_bmbt_rec_host_t *r) | 164 | xfs_bmbt_rec_host_t *r) |
165 | { | 165 | { |
166 | #if XFS_BIG_BLKNOS | 166 | #if XFS_BIG_BLKNOS |
167 | return (((xfs_fsblock_t)r->l0 & XFS_MASK64LO(9)) << 43) | | 167 | return (((xfs_fsblock_t)r->l0 & xfs_mask64lo(9)) << 43) | |
168 | (((xfs_fsblock_t)r->l1) >> 21); | 168 | (((xfs_fsblock_t)r->l1) >> 21); |
169 | #else | 169 | #else |
170 | #ifdef DEBUG | 170 | #ifdef DEBUG |
171 | xfs_dfsbno_t b; | 171 | xfs_dfsbno_t b; |
172 | 172 | ||
173 | b = (((xfs_dfsbno_t)r->l0 & XFS_MASK64LO(9)) << 43) | | 173 | b = (((xfs_dfsbno_t)r->l0 & xfs_mask64lo(9)) << 43) | |
174 | (((xfs_dfsbno_t)r->l1) >> 21); | 174 | (((xfs_dfsbno_t)r->l1) >> 21); |
175 | ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b)); | 175 | ASSERT((b >> 32) == 0 || ISNULLDSTARTBLOCK(b)); |
176 | return (xfs_fsblock_t)b; | 176 | return (xfs_fsblock_t)b; |
@@ -188,7 +188,7 @@ xfs_bmbt_get_startoff( | |||
188 | xfs_bmbt_rec_host_t *r) | 188 | xfs_bmbt_rec_host_t *r) |
189 | { | 189 | { |
190 | return ((xfs_fileoff_t)r->l0 & | 190 | return ((xfs_fileoff_t)r->l0 & |
191 | XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)) >> 9; | 191 | xfs_mask64lo(64 - BMBT_EXNTFLAG_BITLEN)) >> 9; |
192 | } | 192 | } |
193 | 193 | ||
194 | xfs_exntst_t | 194 | xfs_exntst_t |
@@ -219,7 +219,7 @@ xfs_filblks_t | |||
219 | xfs_bmbt_disk_get_blockcount( | 219 | xfs_bmbt_disk_get_blockcount( |
220 | xfs_bmbt_rec_t *r) | 220 | xfs_bmbt_rec_t *r) |
221 | { | 221 | { |
222 | return (xfs_filblks_t)(be64_to_cpu(r->l1) & XFS_MASK64LO(21)); | 222 | return (xfs_filblks_t)(be64_to_cpu(r->l1) & xfs_mask64lo(21)); |
223 | } | 223 | } |
224 | 224 | ||
225 | /* | 225 | /* |
@@ -230,7 +230,7 @@ xfs_bmbt_disk_get_startoff( | |||
230 | xfs_bmbt_rec_t *r) | 230 | xfs_bmbt_rec_t *r) |
231 | { | 231 | { |
232 | return ((xfs_fileoff_t)be64_to_cpu(r->l0) & | 232 | return ((xfs_fileoff_t)be64_to_cpu(r->l0) & |
233 | XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN)) >> 9; | 233 | xfs_mask64lo(64 - BMBT_EXNTFLAG_BITLEN)) >> 9; |
234 | } | 234 | } |
235 | 235 | ||
236 | 236 | ||
@@ -248,33 +248,33 @@ xfs_bmbt_set_allf( | |||
248 | int extent_flag = (state == XFS_EXT_NORM) ? 0 : 1; | 248 | int extent_flag = (state == XFS_EXT_NORM) ? 0 : 1; |
249 | 249 | ||
250 | ASSERT(state == XFS_EXT_NORM || state == XFS_EXT_UNWRITTEN); | 250 | ASSERT(state == XFS_EXT_NORM || state == XFS_EXT_UNWRITTEN); |
251 | ASSERT((startoff & XFS_MASK64HI(64-BMBT_STARTOFF_BITLEN)) == 0); | 251 | ASSERT((startoff & xfs_mask64hi(64-BMBT_STARTOFF_BITLEN)) == 0); |
252 | ASSERT((blockcount & XFS_MASK64HI(64-BMBT_BLOCKCOUNT_BITLEN)) == 0); | 252 | ASSERT((blockcount & xfs_mask64hi(64-BMBT_BLOCKCOUNT_BITLEN)) == 0); |
253 | 253 | ||
254 | #if XFS_BIG_BLKNOS | 254 | #if XFS_BIG_BLKNOS |
255 | ASSERT((startblock & XFS_MASK64HI(64-BMBT_STARTBLOCK_BITLEN)) == 0); | 255 | ASSERT((startblock & xfs_mask64hi(64-BMBT_STARTBLOCK_BITLEN)) == 0); |
256 | 256 | ||
257 | r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) | | 257 | r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) | |
258 | ((xfs_bmbt_rec_base_t)startoff << 9) | | 258 | ((xfs_bmbt_rec_base_t)startoff << 9) | |
259 | ((xfs_bmbt_rec_base_t)startblock >> 43); | 259 | ((xfs_bmbt_rec_base_t)startblock >> 43); |
260 | r->l1 = ((xfs_bmbt_rec_base_t)startblock << 21) | | 260 | r->l1 = ((xfs_bmbt_rec_base_t)startblock << 21) | |
261 | ((xfs_bmbt_rec_base_t)blockcount & | 261 | ((xfs_bmbt_rec_base_t)blockcount & |
262 | (xfs_bmbt_rec_base_t)XFS_MASK64LO(21)); | 262 | (xfs_bmbt_rec_base_t)xfs_mask64lo(21)); |
263 | #else /* !XFS_BIG_BLKNOS */ | 263 | #else /* !XFS_BIG_BLKNOS */ |
264 | if (ISNULLSTARTBLOCK(startblock)) { | 264 | if (ISNULLSTARTBLOCK(startblock)) { |
265 | r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) | | 265 | r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) | |
266 | ((xfs_bmbt_rec_base_t)startoff << 9) | | 266 | ((xfs_bmbt_rec_base_t)startoff << 9) | |
267 | (xfs_bmbt_rec_base_t)XFS_MASK64LO(9); | 267 | (xfs_bmbt_rec_base_t)xfs_mask64lo(9); |
268 | r->l1 = XFS_MASK64HI(11) | | 268 | r->l1 = xfs_mask64hi(11) | |
269 | ((xfs_bmbt_rec_base_t)startblock << 21) | | 269 | ((xfs_bmbt_rec_base_t)startblock << 21) | |
270 | ((xfs_bmbt_rec_base_t)blockcount & | 270 | ((xfs_bmbt_rec_base_t)blockcount & |
271 | (xfs_bmbt_rec_base_t)XFS_MASK64LO(21)); | 271 | (xfs_bmbt_rec_base_t)xfs_mask64lo(21)); |
272 | } else { | 272 | } else { |
273 | r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) | | 273 | r->l0 = ((xfs_bmbt_rec_base_t)extent_flag << 63) | |
274 | ((xfs_bmbt_rec_base_t)startoff << 9); | 274 | ((xfs_bmbt_rec_base_t)startoff << 9); |
275 | r->l1 = ((xfs_bmbt_rec_base_t)startblock << 21) | | 275 | r->l1 = ((xfs_bmbt_rec_base_t)startblock << 21) | |
276 | ((xfs_bmbt_rec_base_t)blockcount & | 276 | ((xfs_bmbt_rec_base_t)blockcount & |
277 | (xfs_bmbt_rec_base_t)XFS_MASK64LO(21)); | 277 | (xfs_bmbt_rec_base_t)xfs_mask64lo(21)); |
278 | } | 278 | } |
279 | #endif /* XFS_BIG_BLKNOS */ | 279 | #endif /* XFS_BIG_BLKNOS */ |
280 | } | 280 | } |
@@ -306,11 +306,11 @@ xfs_bmbt_disk_set_allf( | |||
306 | int extent_flag = (state == XFS_EXT_NORM) ? 0 : 1; | 306 | int extent_flag = (state == XFS_EXT_NORM) ? 0 : 1; |
307 | 307 | ||
308 | ASSERT(state == XFS_EXT_NORM || state == XFS_EXT_UNWRITTEN); | 308 | ASSERT(state == XFS_EXT_NORM || state == XFS_EXT_UNWRITTEN); |
309 | ASSERT((startoff & XFS_MASK64HI(64-BMBT_STARTOFF_BITLEN)) == 0); | 309 | ASSERT((startoff & xfs_mask64hi(64-BMBT_STARTOFF_BITLEN)) == 0); |
310 | ASSERT((blockcount & XFS_MASK64HI(64-BMBT_BLOCKCOUNT_BITLEN)) == 0); | 310 | ASSERT((blockcount & xfs_mask64hi(64-BMBT_BLOCKCOUNT_BITLEN)) == 0); |
311 | 311 | ||
312 | #if XFS_BIG_BLKNOS | 312 | #if XFS_BIG_BLKNOS |
313 | ASSERT((startblock & XFS_MASK64HI(64-BMBT_STARTBLOCK_BITLEN)) == 0); | 313 | ASSERT((startblock & xfs_mask64hi(64-BMBT_STARTBLOCK_BITLEN)) == 0); |
314 | 314 | ||
315 | r->l0 = cpu_to_be64( | 315 | r->l0 = cpu_to_be64( |
316 | ((xfs_bmbt_rec_base_t)extent_flag << 63) | | 316 | ((xfs_bmbt_rec_base_t)extent_flag << 63) | |
@@ -319,17 +319,17 @@ xfs_bmbt_disk_set_allf( | |||
319 | r->l1 = cpu_to_be64( | 319 | r->l1 = cpu_to_be64( |
320 | ((xfs_bmbt_rec_base_t)startblock << 21) | | 320 | ((xfs_bmbt_rec_base_t)startblock << 21) | |
321 | ((xfs_bmbt_rec_base_t)blockcount & | 321 | ((xfs_bmbt_rec_base_t)blockcount & |
322 | (xfs_bmbt_rec_base_t)XFS_MASK64LO(21))); | 322 | (xfs_bmbt_rec_base_t)xfs_mask64lo(21))); |
323 | #else /* !XFS_BIG_BLKNOS */ | 323 | #else /* !XFS_BIG_BLKNOS */ |
324 | if (ISNULLSTARTBLOCK(startblock)) { | 324 | if (ISNULLSTARTBLOCK(startblock)) { |
325 | r->l0 = cpu_to_be64( | 325 | r->l0 = cpu_to_be64( |
326 | ((xfs_bmbt_rec_base_t)extent_flag << 63) | | 326 | ((xfs_bmbt_rec_base_t)extent_flag << 63) | |
327 | ((xfs_bmbt_rec_base_t)startoff << 9) | | 327 | ((xfs_bmbt_rec_base_t)startoff << 9) | |
328 | (xfs_bmbt_rec_base_t)XFS_MASK64LO(9)); | 328 | (xfs_bmbt_rec_base_t)xfs_mask64lo(9)); |
329 | r->l1 = cpu_to_be64(XFS_MASK64HI(11) | | 329 | r->l1 = cpu_to_be64(xfs_mask64hi(11) | |
330 | ((xfs_bmbt_rec_base_t)startblock << 21) | | 330 | ((xfs_bmbt_rec_base_t)startblock << 21) | |
331 | ((xfs_bmbt_rec_base_t)blockcount & | 331 | ((xfs_bmbt_rec_base_t)blockcount & |
332 | (xfs_bmbt_rec_base_t)XFS_MASK64LO(21))); | 332 | (xfs_bmbt_rec_base_t)xfs_mask64lo(21))); |
333 | } else { | 333 | } else { |
334 | r->l0 = cpu_to_be64( | 334 | r->l0 = cpu_to_be64( |
335 | ((xfs_bmbt_rec_base_t)extent_flag << 63) | | 335 | ((xfs_bmbt_rec_base_t)extent_flag << 63) | |
@@ -337,7 +337,7 @@ xfs_bmbt_disk_set_allf( | |||
337 | r->l1 = cpu_to_be64( | 337 | r->l1 = cpu_to_be64( |
338 | ((xfs_bmbt_rec_base_t)startblock << 21) | | 338 | ((xfs_bmbt_rec_base_t)startblock << 21) | |
339 | ((xfs_bmbt_rec_base_t)blockcount & | 339 | ((xfs_bmbt_rec_base_t)blockcount & |
340 | (xfs_bmbt_rec_base_t)XFS_MASK64LO(21))); | 340 | (xfs_bmbt_rec_base_t)xfs_mask64lo(21))); |
341 | } | 341 | } |
342 | #endif /* XFS_BIG_BLKNOS */ | 342 | #endif /* XFS_BIG_BLKNOS */ |
343 | } | 343 | } |
@@ -362,9 +362,9 @@ xfs_bmbt_set_blockcount( | |||
362 | xfs_bmbt_rec_host_t *r, | 362 | xfs_bmbt_rec_host_t *r, |
363 | xfs_filblks_t v) | 363 | xfs_filblks_t v) |
364 | { | 364 | { |
365 | ASSERT((v & XFS_MASK64HI(43)) == 0); | 365 | ASSERT((v & xfs_mask64hi(43)) == 0); |
366 | r->l1 = (r->l1 & (xfs_bmbt_rec_base_t)XFS_MASK64HI(43)) | | 366 | r->l1 = (r->l1 & (xfs_bmbt_rec_base_t)xfs_mask64hi(43)) | |
367 | (xfs_bmbt_rec_base_t)(v & XFS_MASK64LO(21)); | 367 | (xfs_bmbt_rec_base_t)(v & xfs_mask64lo(21)); |
368 | } | 368 | } |
369 | 369 | ||
370 | /* | 370 | /* |
@@ -376,21 +376,21 @@ xfs_bmbt_set_startblock( | |||
376 | xfs_fsblock_t v) | 376 | xfs_fsblock_t v) |
377 | { | 377 | { |
378 | #if XFS_BIG_BLKNOS | 378 | #if XFS_BIG_BLKNOS |
379 | ASSERT((v & XFS_MASK64HI(12)) == 0); | 379 | ASSERT((v & xfs_mask64hi(12)) == 0); |
380 | r->l0 = (r->l0 & (xfs_bmbt_rec_base_t)XFS_MASK64HI(55)) | | 380 | r->l0 = (r->l0 & (xfs_bmbt_rec_base_t)xfs_mask64hi(55)) | |
381 | (xfs_bmbt_rec_base_t)(v >> 43); | 381 | (xfs_bmbt_rec_base_t)(v >> 43); |
382 | r->l1 = (r->l1 & (xfs_bmbt_rec_base_t)XFS_MASK64LO(21)) | | 382 | r->l1 = (r->l1 & (xfs_bmbt_rec_base_t)xfs_mask64lo(21)) | |
383 | (xfs_bmbt_rec_base_t)(v << 21); | 383 | (xfs_bmbt_rec_base_t)(v << 21); |
384 | #else /* !XFS_BIG_BLKNOS */ | 384 | #else /* !XFS_BIG_BLKNOS */ |
385 | if (ISNULLSTARTBLOCK(v)) { | 385 | if (ISNULLSTARTBLOCK(v)) { |
386 | r->l0 |= (xfs_bmbt_rec_base_t)XFS_MASK64LO(9); | 386 | r->l0 |= (xfs_bmbt_rec_base_t)xfs_mask64lo(9); |
387 | r->l1 = (xfs_bmbt_rec_base_t)XFS_MASK64HI(11) | | 387 | r->l1 = (xfs_bmbt_rec_base_t)xfs_mask64hi(11) | |
388 | ((xfs_bmbt_rec_base_t)v << 21) | | 388 | ((xfs_bmbt_rec_base_t)v << 21) | |
389 | (r->l1 & (xfs_bmbt_rec_base_t)XFS_MASK64LO(21)); | 389 | (r->l1 & (xfs_bmbt_rec_base_t)xfs_mask64lo(21)); |
390 | } else { | 390 | } else { |
391 | r->l0 &= ~(xfs_bmbt_rec_base_t)XFS_MASK64LO(9); | 391 | r->l0 &= ~(xfs_bmbt_rec_base_t)xfs_mask64lo(9); |
392 | r->l1 = ((xfs_bmbt_rec_base_t)v << 21) | | 392 | r->l1 = ((xfs_bmbt_rec_base_t)v << 21) | |
393 | (r->l1 & (xfs_bmbt_rec_base_t)XFS_MASK64LO(21)); | 393 | (r->l1 & (xfs_bmbt_rec_base_t)xfs_mask64lo(21)); |
394 | } | 394 | } |
395 | #endif /* XFS_BIG_BLKNOS */ | 395 | #endif /* XFS_BIG_BLKNOS */ |
396 | } | 396 | } |
@@ -403,10 +403,10 @@ xfs_bmbt_set_startoff( | |||
403 | xfs_bmbt_rec_host_t *r, | 403 | xfs_bmbt_rec_host_t *r, |
404 | xfs_fileoff_t v) | 404 | xfs_fileoff_t v) |
405 | { | 405 | { |
406 | ASSERT((v & XFS_MASK64HI(9)) == 0); | 406 | ASSERT((v & xfs_mask64hi(9)) == 0); |
407 | r->l0 = (r->l0 & (xfs_bmbt_rec_base_t) XFS_MASK64HI(1)) | | 407 | r->l0 = (r->l0 & (xfs_bmbt_rec_base_t) xfs_mask64hi(1)) | |
408 | ((xfs_bmbt_rec_base_t)v << 9) | | 408 | ((xfs_bmbt_rec_base_t)v << 9) | |
409 | (r->l0 & (xfs_bmbt_rec_base_t)XFS_MASK64LO(9)); | 409 | (r->l0 & (xfs_bmbt_rec_base_t)xfs_mask64lo(9)); |
410 | } | 410 | } |
411 | 411 | ||
412 | /* | 412 | /* |
@@ -419,9 +419,9 @@ xfs_bmbt_set_state( | |||
419 | { | 419 | { |
420 | ASSERT(v == XFS_EXT_NORM || v == XFS_EXT_UNWRITTEN); | 420 | ASSERT(v == XFS_EXT_NORM || v == XFS_EXT_UNWRITTEN); |
421 | if (v == XFS_EXT_NORM) | 421 | if (v == XFS_EXT_NORM) |
422 | r->l0 &= XFS_MASK64LO(64 - BMBT_EXNTFLAG_BITLEN); | 422 | r->l0 &= xfs_mask64lo(64 - BMBT_EXNTFLAG_BITLEN); |
423 | else | 423 | else |
424 | r->l0 |= XFS_MASK64HI(BMBT_EXNTFLAG_BITLEN); | 424 | r->l0 |= xfs_mask64hi(BMBT_EXNTFLAG_BITLEN); |
425 | } | 425 | } |
426 | 426 | ||
427 | /* | 427 | /* |
diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c index 7ed59267420d..2c3ef20f8842 100644 --- a/fs/xfs/xfs_btree.c +++ b/fs/xfs/xfs_btree.c | |||
@@ -730,8 +730,8 @@ xfs_btree_readahead_lblock( | |||
730 | struct xfs_btree_block *block) | 730 | struct xfs_btree_block *block) |
731 | { | 731 | { |
732 | int rval = 0; | 732 | int rval = 0; |
733 | xfs_fsblock_t left = be64_to_cpu(block->bb_u.l.bb_leftsib); | 733 | xfs_dfsbno_t left = be64_to_cpu(block->bb_u.l.bb_leftsib); |
734 | xfs_fsblock_t right = be64_to_cpu(block->bb_u.l.bb_rightsib); | 734 | xfs_dfsbno_t right = be64_to_cpu(block->bb_u.l.bb_rightsib); |
735 | 735 | ||
736 | if ((lr & XFS_BTCUR_LEFTRA) && left != NULLDFSBNO) { | 736 | if ((lr & XFS_BTCUR_LEFTRA) && left != NULLDFSBNO) { |
737 | xfs_btree_reada_bufl(cur->bc_mp, left, 1); | 737 | xfs_btree_reada_bufl(cur->bc_mp, left, 1); |
diff --git a/fs/xfs/xfs_dir2_block.c b/fs/xfs/xfs_dir2_block.c index e2fa0a1d8e96..e1f0a06aaf04 100644 --- a/fs/xfs/xfs_dir2_block.c +++ b/fs/xfs/xfs_dir2_block.c | |||
@@ -517,9 +517,9 @@ xfs_dir2_block_getdents( | |||
517 | /* | 517 | /* |
518 | * If it didn't fit, set the final offset to here & return. | 518 | * If it didn't fit, set the final offset to here & return. |
519 | */ | 519 | */ |
520 | if (filldir(dirent, dep->name, dep->namelen, cook, | 520 | if (filldir(dirent, dep->name, dep->namelen, cook & 0x7fffffff, |
521 | ino, DT_UNKNOWN)) { | 521 | ino, DT_UNKNOWN)) { |
522 | *offset = cook; | 522 | *offset = cook & 0x7fffffff; |
523 | xfs_da_brelse(NULL, bp); | 523 | xfs_da_brelse(NULL, bp); |
524 | return 0; | 524 | return 0; |
525 | } | 525 | } |
@@ -529,7 +529,8 @@ xfs_dir2_block_getdents( | |||
529 | * Reached the end of the block. | 529 | * Reached the end of the block. |
530 | * Set the offset to a non-existent block 1 and return. | 530 | * Set the offset to a non-existent block 1 and return. |
531 | */ | 531 | */ |
532 | *offset = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk + 1, 0); | 532 | *offset = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk + 1, 0) & |
533 | 0x7fffffff; | ||
533 | xfs_da_brelse(NULL, bp); | 534 | xfs_da_brelse(NULL, bp); |
534 | return 0; | 535 | return 0; |
535 | } | 536 | } |
diff --git a/fs/xfs/xfs_dir2_leaf.c b/fs/xfs/xfs_dir2_leaf.c index 93535992cb60..ef805a374eec 100644 --- a/fs/xfs/xfs_dir2_leaf.c +++ b/fs/xfs/xfs_dir2_leaf.c | |||
@@ -1092,7 +1092,7 @@ xfs_dir2_leaf_getdents( | |||
1092 | * Won't fit. Return to caller. | 1092 | * Won't fit. Return to caller. |
1093 | */ | 1093 | */ |
1094 | if (filldir(dirent, dep->name, dep->namelen, | 1094 | if (filldir(dirent, dep->name, dep->namelen, |
1095 | xfs_dir2_byte_to_dataptr(mp, curoff), | 1095 | xfs_dir2_byte_to_dataptr(mp, curoff) & 0x7fffffff, |
1096 | ino, DT_UNKNOWN)) | 1096 | ino, DT_UNKNOWN)) |
1097 | break; | 1097 | break; |
1098 | 1098 | ||
@@ -1108,9 +1108,9 @@ xfs_dir2_leaf_getdents( | |||
1108 | * All done. Set output offset value to current offset. | 1108 | * All done. Set output offset value to current offset. |
1109 | */ | 1109 | */ |
1110 | if (curoff > xfs_dir2_dataptr_to_byte(mp, XFS_DIR2_MAX_DATAPTR)) | 1110 | if (curoff > xfs_dir2_dataptr_to_byte(mp, XFS_DIR2_MAX_DATAPTR)) |
1111 | *offset = XFS_DIR2_MAX_DATAPTR; | 1111 | *offset = XFS_DIR2_MAX_DATAPTR & 0x7fffffff; |
1112 | else | 1112 | else |
1113 | *offset = xfs_dir2_byte_to_dataptr(mp, curoff); | 1113 | *offset = xfs_dir2_byte_to_dataptr(mp, curoff) & 0x7fffffff; |
1114 | kmem_free(map); | 1114 | kmem_free(map); |
1115 | if (bp) | 1115 | if (bp) |
1116 | xfs_da_brelse(NULL, bp); | 1116 | xfs_da_brelse(NULL, bp); |
diff --git a/fs/xfs/xfs_dir2_sf.c b/fs/xfs/xfs_dir2_sf.c index b46af0013ec9..a8a8a6efad5b 100644 --- a/fs/xfs/xfs_dir2_sf.c +++ b/fs/xfs/xfs_dir2_sf.c | |||
@@ -752,8 +752,8 @@ xfs_dir2_sf_getdents( | |||
752 | #if XFS_BIG_INUMS | 752 | #if XFS_BIG_INUMS |
753 | ino += mp->m_inoadd; | 753 | ino += mp->m_inoadd; |
754 | #endif | 754 | #endif |
755 | if (filldir(dirent, ".", 1, dot_offset, ino, DT_DIR)) { | 755 | if (filldir(dirent, ".", 1, dot_offset & 0x7fffffff, ino, DT_DIR)) { |
756 | *offset = dot_offset; | 756 | *offset = dot_offset & 0x7fffffff; |
757 | return 0; | 757 | return 0; |
758 | } | 758 | } |
759 | } | 759 | } |
@@ -766,8 +766,8 @@ xfs_dir2_sf_getdents( | |||
766 | #if XFS_BIG_INUMS | 766 | #if XFS_BIG_INUMS |
767 | ino += mp->m_inoadd; | 767 | ino += mp->m_inoadd; |
768 | #endif | 768 | #endif |
769 | if (filldir(dirent, "..", 2, dotdot_offset, ino, DT_DIR)) { | 769 | if (filldir(dirent, "..", 2, dotdot_offset & 0x7fffffff, ino, DT_DIR)) { |
770 | *offset = dotdot_offset; | 770 | *offset = dotdot_offset & 0x7fffffff; |
771 | return 0; | 771 | return 0; |
772 | } | 772 | } |
773 | } | 773 | } |
@@ -791,14 +791,15 @@ xfs_dir2_sf_getdents( | |||
791 | #endif | 791 | #endif |
792 | 792 | ||
793 | if (filldir(dirent, sfep->name, sfep->namelen, | 793 | if (filldir(dirent, sfep->name, sfep->namelen, |
794 | off, ino, DT_UNKNOWN)) { | 794 | off & 0x7fffffff, ino, DT_UNKNOWN)) { |
795 | *offset = off; | 795 | *offset = off & 0x7fffffff; |
796 | return 0; | 796 | return 0; |
797 | } | 797 | } |
798 | sfep = xfs_dir2_sf_nextentry(sfp, sfep); | 798 | sfep = xfs_dir2_sf_nextentry(sfp, sfep); |
799 | } | 799 | } |
800 | 800 | ||
801 | *offset = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk + 1, 0); | 801 | *offset = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk + 1, 0) & |
802 | 0x7fffffff; | ||
802 | return 0; | 803 | return 0; |
803 | } | 804 | } |
804 | 805 | ||
diff --git a/fs/xfs/xfs_types.h b/fs/xfs/xfs_types.h index 0f5191644ab2..b2f724502f1b 100644 --- a/fs/xfs/xfs_types.h +++ b/fs/xfs/xfs_types.h | |||
@@ -45,7 +45,7 @@ typedef __uint32_t prid_t; /* project ID */ | |||
45 | typedef __uint32_t inst_t; /* an instruction */ | 45 | typedef __uint32_t inst_t; /* an instruction */ |
46 | 46 | ||
47 | typedef __s64 xfs_off_t; /* <file offset> type */ | 47 | typedef __s64 xfs_off_t; /* <file offset> type */ |
48 | typedef __u64 xfs_ino_t; /* <inode> type */ | 48 | typedef unsigned long long xfs_ino_t; /* <inode> type */ |
49 | typedef __s64 xfs_daddr_t; /* <disk address> type */ | 49 | typedef __s64 xfs_daddr_t; /* <disk address> type */ |
50 | typedef char * xfs_caddr_t; /* <core address> type */ | 50 | typedef char * xfs_caddr_t; /* <core address> type */ |
51 | typedef __u32 xfs_dev_t; | 51 | typedef __u32 xfs_dev_t; |
@@ -111,8 +111,6 @@ typedef __uint64_t xfs_fileoff_t; /* block number in a file */ | |||
111 | typedef __int64_t xfs_sfiloff_t; /* signed block number in a file */ | 111 | typedef __int64_t xfs_sfiloff_t; /* signed block number in a file */ |
112 | typedef __uint64_t xfs_filblks_t; /* number of blocks in a file */ | 112 | typedef __uint64_t xfs_filblks_t; /* number of blocks in a file */ |
113 | 113 | ||
114 | typedef __uint8_t xfs_arch_t; /* architecture of an xfs fs */ | ||
115 | |||
116 | /* | 114 | /* |
117 | * Null values for the types. | 115 | * Null values for the types. |
118 | */ | 116 | */ |
diff --git a/include/asm-frv/Kbuild b/include/asm-frv/Kbuild index 1f44e7c76995..0f8956def738 100644 --- a/include/asm-frv/Kbuild +++ b/include/asm-frv/Kbuild | |||
@@ -3,4 +3,3 @@ include include/asm-generic/Kbuild.asm | |||
3 | header-y += registers.h | 3 | header-y += registers.h |
4 | 4 | ||
5 | unifdef-y += termios.h | 5 | unifdef-y += termios.h |
6 | unifdef-y += swab.h | ||
diff --git a/include/asm-frv/byteorder.h b/include/asm-frv/byteorder.h index 1187e51ecd13..f29b7593e088 100644 --- a/include/asm-frv/byteorder.h +++ b/include/asm-frv/byteorder.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _ASM_BYTEORDER_H | 1 | #ifndef _ASM_BYTEORDER_H |
2 | #define _ASM_BYTEORDER_H | 2 | #define _ASM_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | #include <linux/byteorder/big_endian.h> | 4 | #include <linux/byteorder/big_endian.h> |
6 | 5 | ||
7 | #endif /* _ASM_BYTEORDER_H */ | 6 | #endif /* _ASM_BYTEORDER_H */ |
diff --git a/include/asm-generic/Kbuild.asm b/include/asm-generic/Kbuild.asm index 1870d5e05f1c..70d185534b9d 100644 --- a/include/asm-generic/Kbuild.asm +++ b/include/asm-generic/Kbuild.asm | |||
@@ -31,6 +31,7 @@ unifdef-y += socket.h | |||
31 | unifdef-y += sockios.h | 31 | unifdef-y += sockios.h |
32 | unifdef-y += stat.h | 32 | unifdef-y += stat.h |
33 | unifdef-y += statfs.h | 33 | unifdef-y += statfs.h |
34 | unifdef-y += swab.h | ||
34 | unifdef-y += termbits.h | 35 | unifdef-y += termbits.h |
35 | unifdef-y += termios.h | 36 | unifdef-y += termios.h |
36 | unifdef-y += types.h | 37 | unifdef-y += types.h |
diff --git a/include/asm-m32r/Kbuild b/include/asm-m32r/Kbuild index 27b108a86b39..c68e1680da01 100644 --- a/include/asm-m32r/Kbuild +++ b/include/asm-m32r/Kbuild | |||
@@ -1,2 +1 @@ | |||
1 | include include/asm-generic/Kbuild.asm | include include/asm-generic/Kbuild.asm | |
2 | unifdef-y += swab.h | ||
diff --git a/include/asm-m32r/byteorder.h b/include/asm-m32r/byteorder.h index 61ff9cfd8451..21855d8b028b 100644 --- a/include/asm-m32r/byteorder.h +++ b/include/asm-m32r/byteorder.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef _ASM_M32R_BYTEORDER_H | 1 | #ifndef _ASM_M32R_BYTEORDER_H |
2 | #define _ASM_M32R_BYTEORDER_H | 2 | #define _ASM_M32R_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | |||
6 | #if defined(__LITTLE_ENDIAN__) | 4 | #if defined(__LITTLE_ENDIAN__) |
7 | # include <linux/byteorder/little_endian.h> | 5 | # include <linux/byteorder/little_endian.h> |
8 | #else | 6 | #else |
diff --git a/include/asm-m68k/Kbuild b/include/asm-m68k/Kbuild index 52fd96b4142a..1a922fad76f7 100644 --- a/include/asm-m68k/Kbuild +++ b/include/asm-m68k/Kbuild | |||
@@ -1,3 +1,2 @@ | |||
1 | include include/asm-generic/Kbuild.asm | 1 | include include/asm-generic/Kbuild.asm |
2 | header-y += cachectl.h | 2 | header-y += cachectl.h |
3 | unifdef-y += swab.h | ||
diff --git a/include/asm-m68k/byteorder.h b/include/asm-m68k/byteorder.h index 300866523b86..31b260a88803 100644 --- a/include/asm-m68k/byteorder.h +++ b/include/asm-m68k/byteorder.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _M68K_BYTEORDER_H | 1 | #ifndef _M68K_BYTEORDER_H |
2 | #define _M68K_BYTEORDER_H | 2 | #define _M68K_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | #include <linux/byteorder/big_endian.h> | 4 | #include <linux/byteorder/big_endian.h> |
6 | 5 | ||
7 | #endif /* _M68K_BYTEORDER_H */ | 6 | #endif /* _M68K_BYTEORDER_H */ |
diff --git a/include/asm-mn10300/Kbuild b/include/asm-mn10300/Kbuild index 27b108a86b39..c68e1680da01 100644 --- a/include/asm-mn10300/Kbuild +++ b/include/asm-mn10300/Kbuild | |||
@@ -1,2 +1 @@ | |||
1 | include include/asm-generic/Kbuild.asm | include include/asm-generic/Kbuild.asm | |
2 | unifdef-y += swab.h | ||
diff --git a/include/asm-mn10300/byteorder.h b/include/asm-mn10300/byteorder.h index 45b18ded19e6..5dd0bdd9feee 100644 --- a/include/asm-mn10300/byteorder.h +++ b/include/asm-mn10300/byteorder.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _ASM_BYTEORDER_H | 1 | #ifndef _ASM_BYTEORDER_H |
2 | #define _ASM_BYTEORDER_H | 2 | #define _ASM_BYTEORDER_H |
3 | 3 | ||
4 | #include <asm/swab.h> | ||
5 | #include <linux/byteorder/little_endian.h> | 4 | #include <linux/byteorder/little_endian.h> |
6 | 5 | ||
7 | #endif /* _ASM_BYTEORDER_H */ | 6 | #endif /* _ASM_BYTEORDER_H */ |
diff --git a/include/linux/ide.h b/include/linux/ide.h index 3644f6323384..194da5a4b0d6 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -871,7 +871,7 @@ struct ide_host { | |||
871 | ide_hwif_t *cur_port; /* for hosts requiring serialization */ | 871 | ide_hwif_t *cur_port; /* for hosts requiring serialization */ |
872 | 872 | ||
873 | /* used for hosts requiring serialization */ | 873 | /* used for hosts requiring serialization */ |
874 | volatile long host_busy; | 874 | volatile unsigned long host_busy; |
875 | }; | 875 | }; |
876 | 876 | ||
877 | #define IDE_HOST_BUSY 0 | 877 | #define IDE_HOST_BUSY 0 |
diff --git a/include/linux/mm.h b/include/linux/mm.h index b91a73fd1bcc..e8ddc98b8405 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -260,7 +260,6 @@ static inline int put_page_testzero(struct page *page) | |||
260 | */ | 260 | */ |
261 | static inline int get_page_unless_zero(struct page *page) | 261 | static inline int get_page_unless_zero(struct page *page) |
262 | { | 262 | { |
263 | VM_BUG_ON(PageTail(page)); | ||
264 | return atomic_inc_not_zero(&page->_count); | 263 | return atomic_inc_not_zero(&page->_count); |
265 | } | 264 | } |
266 | 265 | ||
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index d543365518ab..d56ad9c21c09 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -2174,6 +2174,7 @@ | |||
2174 | #define PCI_DEVICE_ID_RDC_R6040 0x6040 | 2174 | #define PCI_DEVICE_ID_RDC_R6040 0x6040 |
2175 | #define PCI_DEVICE_ID_RDC_R6060 0x6060 | 2175 | #define PCI_DEVICE_ID_RDC_R6060 0x6060 |
2176 | #define PCI_DEVICE_ID_RDC_R6061 0x6061 | 2176 | #define PCI_DEVICE_ID_RDC_R6061 0x6061 |
2177 | #define PCI_DEVICE_ID_RDC_D1010 0x1010 | ||
2177 | 2178 | ||
2178 | #define PCI_VENDOR_ID_LENOVO 0x17aa | 2179 | #define PCI_VENDOR_ID_LENOVO 0x17aa |
2179 | 2180 | ||
diff --git a/include/linux/swab.h b/include/linux/swab.h index be5284d4a053..ea0c02fd5163 100644 --- a/include/linux/swab.h +++ b/include/linux/swab.h | |||
@@ -3,7 +3,7 @@ | |||
3 | 3 | ||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | #include <linux/compiler.h> | 5 | #include <linux/compiler.h> |
6 | #include <asm/byteorder.h> | 6 | #include <asm/swab.h> |
7 | 7 | ||
8 | /* | 8 | /* |
9 | * casts are necessary for constants, because we never know how for sure | 9 | * casts are necessary for constants, because we never know how for sure |
diff --git a/kernel/Makefile b/kernel/Makefile index 2aebc4cd7878..170a9213c1b6 100644 --- a/kernel/Makefile +++ b/kernel/Makefile | |||
@@ -40,9 +40,8 @@ obj-$(CONFIG_RT_MUTEXES) += rtmutex.o | |||
40 | obj-$(CONFIG_DEBUG_RT_MUTEXES) += rtmutex-debug.o | 40 | obj-$(CONFIG_DEBUG_RT_MUTEXES) += rtmutex-debug.o |
41 | obj-$(CONFIG_RT_MUTEX_TESTER) += rtmutex-tester.o | 41 | obj-$(CONFIG_RT_MUTEX_TESTER) += rtmutex-tester.o |
42 | obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o | 42 | obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o |
43 | ifeq ($(CONFIG_USE_GENERIC_SMP_HELPERS),y) | 43 | obj-$(CONFIG_USE_GENERIC_SMP_HELPERS) += smp.o |
44 | obj-y += smp.o | 44 | ifneq ($(CONFIG_SMP),y) |
45 | else | ||
46 | obj-y += up.o | 45 | obj-y += up.o |
47 | endif | 46 | endif |
48 | obj-$(CONFIG_SMP) += spinlock.o | 47 | obj-$(CONFIG_SMP) += spinlock.o |