瀏覽代碼

[XFS] Fix xfs_lowbit64

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>
David Chinner 17 年之前
父節點
當前提交
edd319dc52
共有 1 個文件被更改,包括 4 次插入4 次删除
  1. 4 4
      fs/xfs/xfs_bit.h

+ 4 - 4
fs/xfs/xfs_bit.h

@@ -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 */
 /* Get low bit set out of 32-bit argument, -1 if none set */
 static inline int xfs_lowbit32(__uint32_t v)
 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 */
 /* Get low bit set out of 64-bit argument, -1 if none set */
 static inline int xfs_lowbit64(__uint64_t v)
 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) */
 /* Return whether bitmap is empty (1 == empty) */