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

_______________________________________________
Lustre-discuss mailing list
[email protected]
https://mail.clusterfs.com/mailman/listinfo/lustre-discuss

Reply via email to