diff -urpN --exclude-from=/home/davej/.exclude bk-linus/fs/jfs/endian24.h linux-2.5/fs/jfs/endian24.h
--- bk-linus/fs/jfs/endian24.h	2002-11-21 02:20:20.000000000 +0000
+++ linux-2.5/fs/jfs/endian24.h	2002-11-21 18:02:19.000000000 +0000
@@ -17,33 +17,4 @@
  */
 #ifndef _H_ENDIAN24
 #define	_H_ENDIAN24
-
-/*
- *	endian24.h:
- *
- * Endian conversion for 24-byte data
- *
- */
-#define __swab24(x) \
-({ \
-	__u32 __x = (x); \
-	((__u32)( \
-		((__x & (__u32)0x000000ffUL) << 16) | \
-		 (__x & (__u32)0x0000ff00UL)        | \
-		((__x & (__u32)0x00ff0000UL) >> 16) )); \
-})
-
-#if (defined(__KERNEL__) && defined(__LITTLE_ENDIAN)) || (defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN))
-	#define __cpu_to_le24(x) ((__u32)(x))
-	#define __le24_to_cpu(x) ((__u32)(x))
-#else
-	#define __cpu_to_le24(x) __swab24(x)
-	#define __le24_to_cpu(x) __swab24(x)
-#endif
-
-#ifdef __KERNEL__
-	#define cpu_to_le24 __cpu_to_le24
-	#define le24_to_cpu __le24_to_cpu
-#endif
-
 #endif				/* !_H_ENDIAN24 */
diff -urpN --exclude-from=/home/davej/.exclude bk-linus/include/linux/byteorder/big_endian.h linux-2.5/include/linux/byteorder/big_endian.h
--- bk-linus/include/linux/byteorder/big_endian.h	2002-11-21 02:24:12.000000000 +0000
+++ linux-2.5/include/linux/byteorder/big_endian.h	2002-11-21 18:04:57.000000000 +0000
@@ -18,48 +18,64 @@
 #define __constant_le64_to_cpu(x) ___constant_swab64((x))
 #define __constant_cpu_to_le32(x) ___constant_swab32((x))
 #define __constant_le32_to_cpu(x) ___constant_swab32((x))
+#define __constant_cpu_to_le24(x) ___constant_swab24((x))
+#define __constant_le24_to_cpu(x) ___constant_swab24((x))
 #define __constant_cpu_to_le16(x) ___constant_swab16((x))
 #define __constant_le16_to_cpu(x) ___constant_swab16((x))
 #define __constant_cpu_to_be64(x) ((__u64)(x))
 #define __constant_be64_to_cpu(x) ((__u64)(x))
 #define __constant_cpu_to_be32(x) ((__u32)(x))
 #define __constant_be32_to_cpu(x) ((__u32)(x))
+#define __constant_cpu_to_be24(x) ((__u32)(x))
+#define __constant_be24_to_cpu(x) ((__u32)(x))
 #define __constant_cpu_to_be16(x) ((__u16)(x))
 #define __constant_be16_to_cpu(x) ((__u16)(x))
 #define __cpu_to_le64(x) __swab64((x))
 #define __le64_to_cpu(x) __swab64((x))
 #define __cpu_to_le32(x) __swab32((x))
 #define __le32_to_cpu(x) __swab32((x))
+#define __cpu_to_le24(x) __swab24((x))
+#define __le24_to_cpu(x) __swab24((x))
 #define __cpu_to_le16(x) __swab16((x))
 #define __le16_to_cpu(x) __swab16((x))
 #define __cpu_to_be64(x) ((__u64)(x))
 #define __be64_to_cpu(x) ((__u64)(x))
 #define __cpu_to_be32(x) ((__u32)(x))
 #define __be32_to_cpu(x) ((__u32)(x))
+#define __cpu_to_be24(x) ((__u32)(x))
+#define __be24_to_cpu(x) ((__u32)(x))
 #define __cpu_to_be16(x) ((__u16)(x))
 #define __be16_to_cpu(x) ((__u16)(x))
 #define __cpu_to_le64p(x) __swab64p((x))
 #define __le64_to_cpup(x) __swab64p((x))
 #define __cpu_to_le32p(x) __swab32p((x))
 #define __le32_to_cpup(x) __swab32p((x))
+#define __cpu_to_le24p(x) __swab24p((x))
+#define __le24_to_cpup(x) __swab24p((x))
 #define __cpu_to_le16p(x) __swab16p((x))
 #define __le16_to_cpup(x) __swab16p((x))
 #define __cpu_to_be64p(x) (*(__u64*)(x))
 #define __be64_to_cpup(x) (*(__u64*)(x))
 #define __cpu_to_be32p(x) (*(__u32*)(x))
 #define __be32_to_cpup(x) (*(__u32*)(x))
+#define __cpu_to_be24p(x) (*(__u24*)(x))
+#define __be24_to_cpup(x) (*(__u24*)(x))
 #define __cpu_to_be16p(x) (*(__u16*)(x))
 #define __be16_to_cpup(x) (*(__u16*)(x))
 #define __cpu_to_le64s(x) __swab64s((x))
 #define __le64_to_cpus(x) __swab64s((x))
 #define __cpu_to_le32s(x) __swab32s((x))
 #define __le32_to_cpus(x) __swab32s((x))
+#define __cpu_to_le24s(x) __swab24s((x))
+#define __le24_to_cpus(x) __swab24s((x))
 #define __cpu_to_le16s(x) __swab16s((x))
 #define __le16_to_cpus(x) __swab16s((x))
 #define __cpu_to_be64s(x) do {} while (0)
 #define __be64_to_cpus(x) do {} while (0)
 #define __cpu_to_be32s(x) do {} while (0)
 #define __be32_to_cpus(x) do {} while (0)
+#define __cpu_to_be24s(x) do {} while (0)
+#define __be24_to_cpus(x) do {} while (0)
 #define __cpu_to_be16s(x) do {} while (0)
 #define __be16_to_cpus(x) do {} while (0)
 
diff -urpN --exclude-from=/home/davej/.exclude bk-linus/include/linux/byteorder/little_endian.h linux-2.5/include/linux/byteorder/little_endian.h
--- bk-linus/include/linux/byteorder/little_endian.h	2002-11-21 02:24:12.000000000 +0000
+++ linux-2.5/include/linux/byteorder/little_endian.h	2002-11-21 18:04:57.000000000 +0000
@@ -18,48 +18,64 @@
 #define __constant_le64_to_cpu(x) ((__u64)(x))
 #define __constant_cpu_to_le32(x) ((__u32)(x))
 #define __constant_le32_to_cpu(x) ((__u32)(x))
+#define __constant_cpu_to_le24(x) ((__u32)(x))
+#define __constant_le24_to_cpu(x) ((__u32)(x))
 #define __constant_cpu_to_le16(x) ((__u16)(x))
 #define __constant_le16_to_cpu(x) ((__u16)(x))
 #define __constant_cpu_to_be64(x) ___constant_swab64((x))
 #define __constant_be64_to_cpu(x) ___constant_swab64((x))
 #define __constant_cpu_to_be32(x) ___constant_swab32((x))
 #define __constant_be32_to_cpu(x) ___constant_swab32((x))
+#define __constant_cpu_to_be24(x) ___constant_swab24((x))
+#define __constant_be24_to_cpu(x) ___constant_swab24((x))
 #define __constant_cpu_to_be16(x) ___constant_swab16((x))
 #define __constant_be16_to_cpu(x) ___constant_swab16((x))
 #define __cpu_to_le64(x) ((__u64)(x))
 #define __le64_to_cpu(x) ((__u64)(x))
 #define __cpu_to_le32(x) ((__u32)(x))
 #define __le32_to_cpu(x) ((__u32)(x))
+#define __cpu_to_le24(x) ((__u32)(x))
+#define __le24_to_cpu(x) ((__u32)(x))
 #define __cpu_to_le16(x) ((__u16)(x))
 #define __le16_to_cpu(x) ((__u16)(x))
 #define __cpu_to_be64(x) __swab64((x))
 #define __be64_to_cpu(x) __swab64((x))
 #define __cpu_to_be32(x) __swab32((x))
 #define __be32_to_cpu(x) __swab32((x))
+#define __cpu_to_be24(x) __swab24((x))
+#define __be24_to_cpu(x) __swab24((x))
 #define __cpu_to_be16(x) __swab16((x))
 #define __be16_to_cpu(x) __swab16((x))
 #define __cpu_to_le64p(x) (*(__u64*)(x))
 #define __le64_to_cpup(x) (*(__u64*)(x))
 #define __cpu_to_le32p(x) (*(__u32*)(x))
 #define __le32_to_cpup(x) (*(__u32*)(x))
+#define __cpu_to_le24p(x) (*(__u32*)(x))
+#define __le24_to_cpup(x) (*(__u32*)(x))
 #define __cpu_to_le16p(x) (*(__u16*)(x))
 #define __le16_to_cpup(x) (*(__u16*)(x))
 #define __cpu_to_be64p(x) __swab64p((x))
 #define __be64_to_cpup(x) __swab64p((x))
 #define __cpu_to_be32p(x) __swab32p((x))
 #define __be32_to_cpup(x) __swab32p((x))
+#define __cpu_to_be24p(x) __swab24p((x))
+#define __be24_to_cpup(x) __swab24p((x))
 #define __cpu_to_be16p(x) __swab16p((x))
 #define __be16_to_cpup(x) __swab16p((x))
 #define __cpu_to_le64s(x) do {} while (0)
 #define __le64_to_cpus(x) do {} while (0)
 #define __cpu_to_le32s(x) do {} while (0)
 #define __le32_to_cpus(x) do {} while (0)
+#define __cpu_to_le24s(x) do {} while (0)
+#define __le24_to_cpus(x) do {} while (0)
 #define __cpu_to_le16s(x) do {} while (0)
 #define __le16_to_cpus(x) do {} while (0)
 #define __cpu_to_be64s(x) __swab64s((x))
 #define __be64_to_cpus(x) __swab64s((x))
 #define __cpu_to_be32s(x) __swab32s((x))
 #define __be32_to_cpus(x) __swab32s((x))
+#define __cpu_to_be24s(x) __swab24s((x))
+#define __be24_to_cpus(x) __swab24s((x))
 #define __cpu_to_be16s(x) __swab16s((x))
 #define __be16_to_cpus(x) __swab16s((x))
 
diff -urpN --exclude-from=/home/davej/.exclude bk-linus/include/linux/byteorder/swab.h linux-2.5/include/linux/byteorder/swab.h
--- bk-linus/include/linux/byteorder/swab.h	2002-11-21 02:24:12.000000000 +0000
+++ linux-2.5/include/linux/byteorder/swab.h	2002-11-21 18:04:57.000000000 +0000
@@ -26,6 +26,15 @@
 		(((__u16)(__x) & (__u16)0xff00U) >> 8) )); \
 })
 
+#define ___swab24(x) \
+({ \
+	__u32 __x = (x); \
+	((__u32)( \
+		((__x & (__u32)0x000000ffUL) << 16) | \
+		 (__x & (__u32)0x0000ff00UL)        | \
+		((__x & (__u32)0x00ff0000UL) >> 16) )); \
+})
+
 #define ___swab32(x) \
 ({ \
 	__u32 __x = (x); \
@@ -54,6 +63,11 @@
 	((__u16)( \
 		(((__u16)(x) & (__u16)0x00ffU) << 8) | \
 		(((__u16)(x) & (__u16)0xff00U) >> 8) ))
+#define ___constant_swab24(x) \
+	((__u32)( \
+		(((__u32)(x) & (__u32)0x000000ffU) << 16) | \
+		(((__u32)(x) & (__u32)0x0000ff00U)	  | \
+		(((__u32)(x) & (__u32)0x00ff0000U) >> 16) ))
 #define ___constant_swab32(x) \
 	((__u32)( \
 		(((__u32)(x) & (__u32)0x000000ffUL) << 24) | \
@@ -77,6 +91,9 @@
 #ifndef __arch__swab16
 #  define __arch__swab16(x) ({ __u16 __tmp = (x) ; ___swab16(__tmp); })
 #endif
+#ifndef __arch__swab24
+#  define __arch__swab24(x) ({ __u32 __tmp = (x) ; ___swab24(__tmp); })
+#endif
 #ifndef __arch__swab32
 #  define __arch__swab32(x) ({ __u32 __tmp = (x) ; ___swab32(__tmp); })
 #endif
@@ -87,6 +104,9 @@
 #ifndef __arch__swab16p
 #  define __arch__swab16p(x) __arch__swab16(*(x))
 #endif
+#ifndef __arch__swab24p
+#  define __arch__swab24p(x) __arch__swab24(*(x))
+#endif
 #ifndef __arch__swab32p
 #  define __arch__swab32p(x) __arch__swab32(*(x))
 #endif
@@ -97,6 +117,9 @@
 #ifndef __arch__swab16s
 #  define __arch__swab16s(x) do { *(x) = __arch__swab16p((x)); } while (0)
 #endif
+#ifndef __arch__swab24s
+#  define __arch__swab24s(x) do { *(x) = __arch__swab24p((x)); } while (0)
+#endif
 #ifndef __arch__swab32s
 #  define __arch__swab32s(x) do { *(x) = __arch__swab32p((x)); } while (0)
 #endif
@@ -113,6 +136,10 @@
 (__builtin_constant_p((__u16)(x)) ? \
  ___swab16((x)) : \
  __fswab16((x)))
+#  define __swab24(x) \
+(__builtin_constant_p((__u32)(x)) ? \
+ ___swab24((x)) : \
+ __fswab24((x)))
 #  define __swab32(x) \
 (__builtin_constant_p((__u32)(x)) ? \
  ___swab32((x)) : \
@@ -123,6 +150,7 @@
  __fswab64((x)))
 #else
 #  define __swab16(x) __fswab16(x)
+#  define __swab24(x) __fswab24(x)
 #  define __swab32(x) __fswab32(x)
 #  define __swab64(x) __fswab64(x)
 #endif /* OPTIMIZE */
@@ -141,6 +169,19 @@ static __inline__ void __swab16s(__u16 *
 	__arch__swab16s(addr);
 }
 
+static __inline__ __const__ __u32 __fswab24(__u32 x)
+{
+	return __arch__swab24(x);
+}
+static __inline__ __u32 __swab24p(__u32 *x)
+{
+	return __arch__swab24p(x);
+}
+static __inline__ void __swab24s(__u32 *addr)
+{
+	__arch__swab24s(addr);
+}
+
 static __inline__ __const__ __u32 __fswab32(__u32 x)
 {
 	return __arch__swab32(x);
@@ -177,12 +218,15 @@ static __inline__ void __swab64s(__u64 *
 
 #if defined(__KERNEL__)
 #define swab16 __swab16
+#define swab24 __swab24
 #define swab32 __swab32
 #define swab64 __swab64
 #define swab16p __swab16p
+#define swab24p __swab24p
 #define swab32p __swab32p
 #define swab64p __swab64p
 #define swab16s __swab16s
+#define swab24s __swab24s
 #define swab32s __swab32s
 #define swab64s __swab64s
 #endif
