[XFS] Fix xfs_lowbit64
authorDavid Chinner <dgc@sgi.com>
Fri, 7 Dec 2007 03:08:48 +0000 (14:08 +1100)
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>
Thu, 7 Feb 2008 07:19:41 +0000 (18:19 +1100)
xfs_lowbit64 was broken on 32 bit platforms in a recent cleanup of the xfs
bitops. Fix it back up again.

SGI-PV: 974005
SGI-Modid: xfs-linux-melb:xfs-kern:30202a

Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
fs/xfs/xfs_bit.h

index 0f9fc9a..325a007 100644 (file)
@@ -61,15 +61,15 @@ static inline int xfs_highbit64(__uint64_t v)
 /* Get low bit set out of 32-bit argument, -1 if none set */
 static inline int xfs_lowbit32(__uint32_t v)
 {
-       unsigned long   t = v;
-       return (v) ? find_first_bit(&t, 32) : -1;
+       __uint32_t t = v;
+       return (t) ? find_first_bit((unsigned long *)&t, 32) : -1;
 }
 
 /* Get low bit set out of 64-bit argument, -1 if none set */
 static inline int xfs_lowbit64(__uint64_t v)
 {
-       unsigned long   t = v;
-       return (v) ? find_first_bit(&t, 64) : -1;
+       __uint64_t t = v;
+       return (t) ? find_first_bit((unsigned long *)&t, 64) : -1;
 }
 
 /* Return whether bitmap is empty (1 == empty) */