There's only one problem --- the ext2 filesystem code is using set_bit(),
and not ext2_set_bit(). And in the e2fsprogs code, the bitops functions
which are used when we are compiling on a sparc are incompatible with
the i386 bitops functions. (As a result, e2fsprogs on a Sparc will fail
most of the e2fsck regression tests, since the filesystem formats are
incompatible.)
This is bad --- very bad. It means that you can't take a ext2 floppy
and use it as an interchange mechanism between a Sparc Linux box and a
i386 Linux box. It means you can't just say, "This external 1GB scsi
disk has an ext2 filesystem on it". You have to qualify it with whether
it is a Sparc ext2 filesystem or a i386 ext2 filesystem. This is *not*
the case, for example, with the MSDOS filesystem, which is readable on
any Windows NT machine (i386, Alpha, PPC), or with the BSD UFS
filesystem, which is readable across a wide range of platforms.
The question now is --- how do we fix this? Are there enough Sparc
Linux boxes out there that it's too late to do a flag day? Do we need
to put a lot of complexity into the kernel code and the e2fsprogs
utilities so that we can recognize different versions of the bitmasks
and do the appropriate byte swapping on the bitmasks? (This can be
done, but at some performance cost).
Or, we could decide that we don't care, and just simply leave things in
an incompatible state. That would be a real shame though, I think.
- Ted