Hello,
I noticed that mb_find_next_bit() of lustre/ldiskfs/mballoc.c(1.6.0.1)
doesn''t work in big-endian environments.
If someone knows how to fix, please teach me.
Here is mb_find_next_bit():
static inline int mb_find_next_bit(void *addr, int max, int start)
{
int fix;
#if BITS_PER_LONG == 64
fix = ((unsigned long) addr & 7UL) << 3;
addr = (void *) ((unsigned long) addr & ~7UL);
#elif BITS_PER_LONG == 32
fix = ((unsigned long) addr & 3UL) << 3;
addr = (void *) ((unsigned long) addr & ~3UL);
#else
#error "how many bits you are?!"
#endif
max += fix;
start += fix;
#ifdef __BIG_ENDIAN
#else
return find_next_bit(addr, max, start) - fix;
#endif
}
Thanks,
Kazuki
--
Kazuki Ohara
Sony Computer Entertainment Inc.
Computer Development Div. Distributed OS Development Dept.
Japan