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-06-12 10:30:18 -07:00
2014-08-08 15:57:24 -07:00
2014-06-12 10:30:18 -07:00
2014-07-29 10:14:36 -07:00
2014-08-08 15:57:19 -07:00
2014-08-08 15:57:20 -07:00
2014-08-08 15:57:24 -07:00
2014-08-16 09:06:55 -06:00
2014-06-06 16:08:14 -07:00
2014-08-13 17:43:29 -06:00
2014-08-20 18:33:21 -05:00
2014-08-08 15:57:20 -07:00
2014-06-04 16:53:53 -07:00
2014-08-08 15:57:25 -07:00
2014-07-09 16:58:21 -07:00
2014-06-06 16:08:14 -07:00
2014-08-08 15:57:27 -07:00
2014-05-06 17:38:00 -04:00
2014-06-04 16:54:14 -07:00
2014-08-08 15:57:18 -07:00
2014-08-08 15:57:24 -07:00
2014-06-04 16:54:14 -07:00
2014-07-15 22:40:22 +02:00
2014-08-19 23:16:51 +02:00
2014-08-11 11:44:11 -07:00
2014-08-04 13:20:53 -07:00
2014-06-12 10:30:18 -07:00
2014-04-04 15:39:39 -07:00
2014-08-06 18:01:12 -07:00
2014-08-07 14:40:11 -04:00
2014-07-28 10:03:00 +02:00
2014-05-06 17:38:00 -04:00
2014-06-12 10:30:18 -07:00
2014-08-07 14:40:09 -04:00
2014-08-08 15:57:22 -07:00
2014-06-04 16:54:11 -07:00
2014-08-19 18:29:30 +02:00
2014-05-21 10:26:13 +02:00
2014-07-16 15:10:39 +02:00
2014-08-08 18:13:21 -07:00
2014-06-12 10:30:18 -07:00
2014-07-21 10:07:25 -07:00
2014-07-23 15:01:44 -07:00
2014-08-06 18:01:12 -07:00
2014-08-08 15:57:20 -07:00
2014-06-04 16:54:21 -07:00
2014-08-22 18:04:44 -04:00
2014-07-12 18:43:42 -04:00
2014-08-09 14:31:18 -07:00
2014-08-11 11:44:11 -07:00
2014-08-06 18:01:24 -07:00
2014-08-06 18:01:12 -07:00
2014-08-06 18:01:13 -07:00
2014-08-08 15:57:25 -07:00
2014-08-10 21:24:59 -07:00
2014-08-08 15:57:25 -07:00
2014-08-08 15:57:26 -07:00
2014-07-15 22:40:23 +02:00
2014-08-08 15:57:18 -07:00
2014-08-13 17:45:40 -06:00
2014-08-08 15:57:25 -07:00
2014-08-06 18:01:13 -07:00
2014-06-03 08:11:18 -07:00
2014-05-06 17:38:00 -04:00
2014-07-31 15:52:51 +03:00
2014-08-19 18:29:30 +02:00
2014-08-08 15:57:21 -07:00
2014-10-02 09:24:11 +10:00
2014-08-24 15:47:27 -07:00
2014-06-10 13:57:22 -07:00
2014-08-07 14:40:09 -04:00
2014-06-05 08:05:29 -07:00
2014-06-04 16:54:21 -07:00
2014-04-03 16:21:16 -07:00
2014-06-12 10:30:18 -07:00
2014-07-16 15:10:39 +02:00
2014-07-11 13:53:04 +03:00
2014-04-22 08:23:58 -04:00
2014-07-23 15:10:54 -07:00
2014-08-07 14:40:11 -04:00
2014-08-07 14:40:11 -04:00
2014-06-06 16:08:16 -07:00
2014-06-16 17:21:59 -10:00
2014-08-08 15:57:23 -07:00
2014-08-08 15:57:31 -07:00
2014-06-12 10:30:18 -07:00
2014-05-06 17:31:10 -04:00
2014-04-03 16:21:05 -07:00
2014-08-07 14:40:09 -04:00
2014-07-16 15:10:39 +02:00
2014-08-08 15:57:31 -07:00
2014-08-07 14:40:09 -04:00
2014-06-04 16:53:55 -07:00
2014-08-14 10:07:47 -04:00
2014-08-07 14:40:08 -04:00
2014-06-25 22:08:29 -04:00
2014-08-07 14:40:09 -04:00
2014-06-04 16:54:02 -07:00
2014-08-07 14:40:10 -04:00
2014-08-11 11:44:11 -07:00
2014-08-01 02:36:04 -04:00
2014-05-06 17:39:42 -04:00
2014-04-01 23:19:08 -04:00
2014-04-01 23:19:08 -04:00
2014-05-06 13:58:42 -04:00
2014-07-29 18:08:50 -07:00
2014-05-06 17:37:55 -04:00
2014-06-04 16:53:52 -07:00
2014-07-03 09:21:54 -07:00
2014-06-12 00:28:09 -04:00
2014-08-13 17:45:40 -06:00
2014-07-23 10:18:02 -07:00
2014-07-23 15:10:55 -07:00