Commit dfc85286 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'xfs-fixes-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs

Pull xfs fix from Dve Chinner:
 "This contains a fix for an endian conversion issue in new CRC
  validation in log recovery that was discovered on a ppc64 platform"

* tag 'xfs-fixes-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs:
  xfs: fix endianness error when checking log block crc on big endian platforms
parents c05235d5 8e0bd492
...@@ -4491,7 +4491,7 @@ xlog_recover_process( ...@@ -4491,7 +4491,7 @@ xlog_recover_process(
* know precisely what failed. * know precisely what failed.
*/ */
if (pass == XLOG_RECOVER_CRCPASS) { if (pass == XLOG_RECOVER_CRCPASS) {
if (rhead->h_crc && crc != le32_to_cpu(rhead->h_crc)) if (rhead->h_crc && crc != rhead->h_crc)
return -EFSBADCRC; return -EFSBADCRC;
return 0; return 0;
} }
...@@ -4502,7 +4502,7 @@ xlog_recover_process( ...@@ -4502,7 +4502,7 @@ xlog_recover_process(
* zero CRC check prevents warnings from being emitted when upgrading * zero CRC check prevents warnings from being emitted when upgrading
* the kernel from one that does not add CRCs by default. * the kernel from one that does not add CRCs by default.
*/ */
if (crc != le32_to_cpu(rhead->h_crc)) { if (crc != rhead->h_crc) {
if (rhead->h_crc || xfs_sb_version_hascrc(&log->l_mp->m_sb)) { if (rhead->h_crc || xfs_sb_version_hascrc(&log->l_mp->m_sb)) {
xfs_alert(log->l_mp, xfs_alert(log->l_mp,
"log record CRC mismatch: found 0x%x, expected 0x%x.", "log record CRC mismatch: found 0x%x, expected 0x%x.",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment