projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
xfs: skip verification on initial "guess" superblock read
[firefly-linux-kernel-4.4.55.git]
/
fs
/
xfs
/
xfs_sb.c
diff --git
a/fs/xfs/xfs_sb.c
b/fs/xfs/xfs_sb.c
index b7c9aea77f8fd2e7ca88537df77536eca8148418..359b19a4df42d85c9f9f55f33b77a610e06c082c 100644
(file)
--- a/
fs/xfs/xfs_sb.c
+++ b/
fs/xfs/xfs_sb.c
@@
-611,10
+611,10
@@
xfs_sb_read_verify(
XFS_SB_VERSION_5) ||
dsb->sb_crc != 0)) {
XFS_SB_VERSION_5) ||
dsb->sb_crc != 0)) {
- if (!xfs_verify_cksum(bp->b_addr,
be16_to_cpu(dsb->sb_sectsize
),
+ if (!xfs_verify_cksum(bp->b_addr,
BBTOB(bp->b_length
),
offsetof(struct xfs_sb, sb_crc))) {
/* Only fail bad secondaries on a known V5 filesystem */
offsetof(struct xfs_sb, sb_crc))) {
/* Only fail bad secondaries on a known V5 filesystem */
- if (bp->b_bn
!= XFS_SB_DADDR &&
+ if (bp->b_bn
== XFS_SB_DADDR ||
xfs_sb_version_hascrc(&mp->m_sb)) {
error = EFSCORRUPTED;
goto out_error;
xfs_sb_version_hascrc(&mp->m_sb)) {
error = EFSCORRUPTED;
goto out_error;
@@
-644,7
+644,6
@@
xfs_sb_quiet_read_verify(
{
struct xfs_dsb *dsb = XFS_BUF_TO_SBP(bp);
{
struct xfs_dsb *dsb = XFS_BUF_TO_SBP(bp);
-
if (dsb->sb_magicnum == cpu_to_be32(XFS_SB_MAGIC)) {
/* XFS filesystem, verify noisily! */
xfs_sb_read_verify(bp);
if (dsb->sb_magicnum == cpu_to_be32(XFS_SB_MAGIC)) {
/* XFS filesystem, verify noisily! */
xfs_sb_read_verify(bp);