Commit 39a45d84 authored by Jie Liu's avatar Jie Liu Committed by Ben Myers

xfs: Remove XFS_MOUNT_RETERR

XFS_MOUNT_RETERR is going to be set at xfs_parseargs() if
mp->m_dalign is enabled, so any time we enter "if (mp->m_dalign)"
branch in xfs_update_alignment(), XFS_MOUNT_RETERR is set and so
we always be emitting a warning and returning an error.

Hence, we can remove it and get rid of a couple of redundant
check up against it at xfs_upate_alignment().

Thanks Dave Chinner for the suggestions of simplify the code
in xfs_parseargs().
Signed-off-by: default avatarJie Liu <jeff.liu@oracle.com>
Cc: Dave Chinner <dchinner@redhat.com>
Cc: Mark Tinguely <tinguely@sgi.com>
Reviewed-by: default avatarMark Tinguely <tinguely@sgi.com>
Signed-off-by: default avatarBen Myers <bpm@sgi.com>
parent 2fb8b502
...@@ -987,43 +987,28 @@ xfs_update_alignment(xfs_mount_t *mp) ...@@ -987,43 +987,28 @@ xfs_update_alignment(xfs_mount_t *mp)
*/ */
if ((BBTOB(mp->m_dalign) & mp->m_blockmask) || if ((BBTOB(mp->m_dalign) & mp->m_blockmask) ||
(BBTOB(mp->m_swidth) & mp->m_blockmask)) { (BBTOB(mp->m_swidth) & mp->m_blockmask)) {
if (mp->m_flags & XFS_MOUNT_RETERR) { xfs_warn(mp,
xfs_warn(mp, "alignment check failed: " "alignment check failed: sunit/swidth vs. blocksize(%d)",
"(sunit/swidth vs. blocksize)"); sbp->sb_blocksize);
return XFS_ERROR(EINVAL); return XFS_ERROR(EINVAL);
}
mp->m_dalign = mp->m_swidth = 0;
} else { } else {
/* /*
* Convert the stripe unit and width to FSBs. * Convert the stripe unit and width to FSBs.
*/ */
mp->m_dalign = XFS_BB_TO_FSBT(mp, mp->m_dalign); mp->m_dalign = XFS_BB_TO_FSBT(mp, mp->m_dalign);
if (mp->m_dalign && (sbp->sb_agblocks % mp->m_dalign)) { if (mp->m_dalign && (sbp->sb_agblocks % mp->m_dalign)) {
if (mp->m_flags & XFS_MOUNT_RETERR) {
xfs_warn(mp, "alignment check failed: "
"(sunit/swidth vs. ag size)");
return XFS_ERROR(EINVAL);
}
xfs_warn(mp, xfs_warn(mp,
"stripe alignment turned off: sunit(%d)/swidth(%d) " "alignment check failed: sunit/swidth vs. agsize(%d)",
"incompatible with agsize(%d)",
mp->m_dalign, mp->m_swidth,
sbp->sb_agblocks); sbp->sb_agblocks);
return XFS_ERROR(EINVAL);
mp->m_dalign = 0;
mp->m_swidth = 0;
} else if (mp->m_dalign) { } else if (mp->m_dalign) {
mp->m_swidth = XFS_BB_TO_FSBT(mp, mp->m_swidth); mp->m_swidth = XFS_BB_TO_FSBT(mp, mp->m_swidth);
} else { } else {
if (mp->m_flags & XFS_MOUNT_RETERR) { xfs_warn(mp,
xfs_warn(mp, "alignment check failed: " "alignment check failed: sunit(%d) less than bsize(%d)",
"sunit(%d) less than bsize(%d)", mp->m_dalign, sbp->sb_blocksize);
mp->m_dalign,
mp->m_blockmask +1);
return XFS_ERROR(EINVAL); return XFS_ERROR(EINVAL);
} }
mp->m_swidth = 0;
}
} }
/* /*
......
...@@ -227,8 +227,6 @@ typedef struct xfs_mount { ...@@ -227,8 +227,6 @@ typedef struct xfs_mount {
operations, typically for operations, typically for
disk errors in metadata */ disk errors in metadata */
#define XFS_MOUNT_DISCARD (1ULL << 5) /* discard unused blocks */ #define XFS_MOUNT_DISCARD (1ULL << 5) /* discard unused blocks */
#define XFS_MOUNT_RETERR (1ULL << 6) /* return alignment errors to
user */
#define XFS_MOUNT_NOALIGN (1ULL << 7) /* turn off stripe alignment #define XFS_MOUNT_NOALIGN (1ULL << 7) /* turn off stripe alignment
allocations */ allocations */
#define XFS_MOUNT_ATTR2 (1ULL << 8) /* allow use of attr2 format */ #define XFS_MOUNT_ATTR2 (1ULL << 8) /* allow use of attr2 format */
......
...@@ -439,19 +439,14 @@ xfs_parseargs( ...@@ -439,19 +439,14 @@ xfs_parseargs(
} }
done: done:
if (!(mp->m_flags & XFS_MOUNT_NOALIGN)) { if (dsunit && !(mp->m_flags & XFS_MOUNT_NOALIGN)) {
/* /*
* At this point the superblock has not been read * At this point the superblock has not been read
* in, therefore we do not know the block size. * in, therefore we do not know the block size.
* Before the mount call ends we will convert * Before the mount call ends we will convert
* these to FSBs. * these to FSBs.
*/ */
if (dsunit) {
mp->m_dalign = dsunit; mp->m_dalign = dsunit;
mp->m_flags |= XFS_MOUNT_RETERR;
}
if (dswidth)
mp->m_swidth = dswidth; mp->m_swidth = dswidth;
} }
......
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