Files
android_kernel_xiaomi_sm8450/fs/xfs
Eric Sandeen 04dd1a0d4b xfs: fix crc field handling in xfs_sb_to/from_disk
I discovered this in userspace, but the same change applies
to the kernel.

If we xfs_mdrestore an image from a non-crc filesystem, lo
and behold the restored image has gained a CRC:

# db/xfs_metadump.sh -o /dev/sdc1 - | xfs_mdrestore - test.img
# xfs_db -c "sb 0" -c "p crc" /dev/sdc1
crc = 0 (correct)
# xfs_db -c "sb 0" -c "p crc" test.img
crc = 0xb6f8d6a0 (correct)

This is because xfs_sb_from_disk doesn't fill in sb_crc,
but xfs_sb_to_disk(XFS_SB_ALL_BITS) does write the in-memory
CRC to disk - so we get uninitialized memory on disk.

Fix this by always initializing sb_crc to 0 when we read
the superblock, and masking out the CRC bit from ALL_BITS
when we write it.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-10-02 09:24:11 +10:00
..
2014-07-30 09:12:05 +10:00
2014-10-02 09:18:13 +10:00
2013-11-06 16:31:27 -06:00
2014-07-15 08:07:01 +10:00
2013-05-07 18:45:36 -05:00
2011-08-12 16:21:35 -05:00
2012-11-19 20:11:24 -06:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2013-08-12 16:53:39 -05:00
2014-06-25 14:58:08 +10:00
2011-08-12 16:21:35 -05:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2014-06-25 14:58:08 +10:00
2011-08-12 16:21:35 -05:00
2014-06-25 14:58:08 +10:00
2013-08-12 16:56:06 -05:00
2014-10-02 09:18:13 +10:00
2013-05-07 18:45:36 -05:00
2014-07-15 08:07:01 +10:00
2014-06-25 14:58:08 +10:00
2014-07-24 20:49:57 +10:00
2014-09-09 11:52:42 +10:00
2014-07-30 09:12:05 +10:00
2014-09-09 11:52:42 +10:00
2014-10-02 09:18:13 +10:00
2014-06-25 14:58:08 +10:00
2014-07-30 09:12:05 +10:00
2014-06-25 14:58:08 +10:00
2013-05-07 18:45:36 -05:00