linux/fs/btrfs
Miguel a5eb62e345 Btrfs: Endianess bug fix for v0.13 with kernels
Fix for a endianess BUG when using btrfs v0.13 with kernels older than 2.6.23

Problem:

Has of v0.13, btrfs-progs is using crc32c.c equivalent to the one found on
linux-2.6.23/lib/libcrc32c.c Since crc32c_le() changed in linux-2.6.23, when
running btrfs v0.13 with older kernels we have a missmatch between the versions
of crc32c_le() from btrfs-progs and libcrc32c in the kernel.  This missmatch
causes a bug when using btrfs on big endian machines.

Solution:
btrfs_crc32c() macro that when compiling for kernels older than 2.6.23, does
endianess conversion to parameters and return value of crc32c().
This endianess conversion nullifies the differences in implementation
of crc32c_le().
If kernel 2.6.23 or better, it calls crc32c().

Signed-off-by: Miguel Sousa Filipe <miguel.filipe@gmail.com>
---

Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
..
acl.c Btrfs: Include sched.h in the acl code for current (fixes compile on 2.6.23) 2008-09-25 11:03:59 -04:00
bit-radix.c Btrfs: trivial include fixups 2007-07-11 10:00:37 -04:00
bit-radix.h Btrfs: add GPLv2 2007-06-12 09:07:21 -04:00
btrfs_inode.h Btrfs: Handle checksumming errors while reading data blocks 2008-09-25 11:04:01 -04:00
COPYING Btrfs: add GPLv2 2007-06-12 09:07:21 -04:00
crc32c.h Btrfs: Endianess bug fix for v0.13 with kernels 2008-09-25 11:04:01 -04:00
ctree.c Btrfs: Disable extra debugging checks on tree blocks 2008-09-25 11:04:01 -04:00
ctree.h Btrfs: Do metadata checksums for reads via a workqueue 2008-09-25 11:04:01 -04:00
dir-item.c Btrfs: unaligned access fixes 2008-09-25 11:04:00 -04:00
disk-io.c Btrfs: Endianess bug fix for v0.13 with kernels 2008-09-25 11:04:01 -04:00
disk-io.h Btrfs: Write out all super blocks on commit, and bring back proper barrier support 2008-09-25 11:04:01 -04:00
extent_io.c Btrfs: Handle checksumming errors while reading data blocks 2008-09-25 11:04:01 -04:00
extent_io.h Btrfs: Handle checksumming errors while reading data blocks 2008-09-25 11:04:01 -04:00
extent_map.c Btrfs: Split the extent_map code into two parts 2008-09-25 11:03:59 -04:00
extent_map.h Btrfs: Split the extent_map code into two parts 2008-09-25 11:03:59 -04:00
extent-tree.c Btrfs: Endianess bug fix for v0.13 with kernels 2008-09-25 11:04:01 -04:00
file-item.c Btrfs: Use KM_USERN instead of KM_IRQ during data summing 2008-09-25 11:04:00 -04:00
file.c Btrfs: Add O_DIRECT read and write (writes == buffered + cache flush) 2008-09-25 11:04:01 -04:00
hash.c btrfs-progs: Stop stomping on 'name' input parameter 2008-09-25 11:04:01 -04:00
hash.h Btrfs: unaligned access fixes 2008-09-25 11:04:00 -04:00
inode-item.c Btrfs: Add back pointers from the inode to the directory that references it 2008-09-25 11:03:58 -04:00
inode-map.c Fix for btrfs_find_free_objectid 2008-09-25 11:03:59 -04:00
inode.c Btrfs: Fixup a few u64<->pointer casts for 32 bit 2008-09-25 11:04:01 -04:00
INSTALL Btrfs: Documentation update 2007-06-22 14:49:31 -04:00
ioctl.h Btrfs: Add support for device scanning and detection ioctls 2008-09-25 11:04:01 -04:00
Makefile Btrfs: Add support for multiple devices per filesystem 2008-09-25 11:04:00 -04:00
ordered-data.c Btrfs: Fix data=ordered vs wait_on_inode deadlock on older kernels 2008-09-25 11:03:59 -04:00
ordered-data.h Btrfs: Fix data=ordered vs wait_on_inode deadlock on older kernels 2008-09-25 11:03:59 -04:00
print-tree.c Btrfs: Move device information into the super block so it can be scanned 2008-09-25 11:04:01 -04:00
print-tree.h Btrfs: Create extent_buffer interface for large blocksizes 2008-09-25 11:03:56 -04:00
root-tree.c Btrfs: Change st_blocksize to 4k 2008-09-25 11:03:59 -04:00
struct-funcs.c Btrfs: unaligned access fixes 2008-09-25 11:04:00 -04:00
super.c Fix btrfs_fill_super to return -EINVAL when no FS found 2008-09-25 11:04:01 -04:00
sysfs.c Btrfs: Disable sysfs files on older kernels 2008-09-25 11:04:00 -04:00
TODO Btrfs: add GPLv2 2007-06-12 09:07:21 -04:00
transaction.c Btrfs: Do metadata checksums for reads via a workqueue 2008-09-25 11:04:01 -04:00
transaction.h Btrfs: Split the extent_map code into two parts 2008-09-25 11:03:59 -04:00
tree-defrag.c Btrfs: Verify checksums on tree blocks found without read_tree_block 2008-09-25 11:04:01 -04:00
volumes.c Btrfs: Write out all super blocks on commit, and bring back proper barrier support 2008-09-25 11:04:01 -04:00
volumes.h Btrfs: Write out all super blocks on commit, and bring back proper barrier support 2008-09-25 11:04:01 -04:00
xattr.c Btrfs: Fix compile on kernel without ACLs enabled 2008-09-25 11:03:59 -04:00
xattr.h xattr support for btrfs 2008-09-25 11:03:57 -04:00