• Brian Foster's avatar
    bcachefs: byte order swap bch_alloc_v4.fragmentation_lru field · 0996c72a
    Brian Foster authored
    
    
    A simple test to populate a filesystem on one CPU architecture and
    fsck on an arch of the opposite byte order produces errors related
    to the fragmentation LRU. This occurs because the 64-bit
    fragmentation_lru field is not byte-order swapped when reads detect
    that the on-disk/bset key values were written in opposite byte-order
    of the current CPU.
    
    Update the bch2_alloc_v4 swab callback to handle fragmentation_lru
    as is done for other multi-byte fields. This doesn't affect existing
    filesystems when accessed by CPUs of the same endianness because the
    ->swab() callback is only called when the bset flags indicate an
    endianness mismatch between the CPU and on-disk data.
    Signed-off-by: default avatarBrian Foster <bfoster@redhat.com>
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    0996c72a
alloc_background.c 53.9 KB