提交 e237f98a 编写于 作者: L Linus Torvalds

Merge tag 'xfs-4.16-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux

Pull more xfs updates from Darrick Wong:
 "As promised, here's a (much smaller) second pull request for the
  second week of the merge cycle. This time around we have a couple
  patches shutting off unsupported fs configurations, and a couple of
  cleanups.

  Last, we turn off EXPERIMENTAL for the reverse mapping btree, since
  the primary downstream user of that information (online fsck) is now
  upstream and I haven't seen any major failures in a few kernel
  releases.

  Summary:

   - Print scrub build status in the xfs build info.

   - Explicitly call out the remaining two scenarios where we don't
     support reflink and never have.

   - Remove EXPERIMENTAL tag from reverse mapping btree!"

* tag 'xfs-4.16-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
  xfs: remove experimental tag for reverse mapping
  xfs: don't allow reflink + realtime filesystems
  xfs: don't allow DAX on reflink filesystems
  xfs: add scrub to XFS_BUILD_OPTIONS
  xfs: fix u32 type usage in sb validation function
...@@ -118,8 +118,8 @@ xfs_mount_validate_sb( ...@@ -118,8 +118,8 @@ xfs_mount_validate_sb(
bool check_inprogress, bool check_inprogress,
bool check_version) bool check_version)
{ {
u32 agcount = 0; uint32_t agcount = 0;
u32 rem; uint32_t rem;
if (sbp->sb_magicnum != XFS_SB_MAGIC) { if (sbp->sb_magicnum != XFS_SB_MAGIC) {
xfs_warn(mp, "bad magic number"); xfs_warn(mp, "bad magic number");
......
...@@ -1666,9 +1666,12 @@ xfs_fs_fill_super( ...@@ -1666,9 +1666,12 @@ xfs_fs_fill_super(
"DAX unsupported by block device. Turning off DAX."); "DAX unsupported by block device. Turning off DAX.");
mp->m_flags &= ~XFS_MOUNT_DAX; mp->m_flags &= ~XFS_MOUNT_DAX;
} }
if (xfs_sb_version_hasreflink(&mp->m_sb)) if (xfs_sb_version_hasreflink(&mp->m_sb)) {
xfs_alert(mp, xfs_alert(mp,
"DAX and reflink cannot be used together!"); "DAX and reflink cannot be used together!");
error = -EINVAL;
goto out_filestream_unmount;
}
} }
if (mp->m_flags & XFS_MOUNT_DISCARD) { if (mp->m_flags & XFS_MOUNT_DISCARD) {
...@@ -1681,15 +1684,18 @@ xfs_fs_fill_super( ...@@ -1681,15 +1684,18 @@ xfs_fs_fill_super(
} }
} }
if (xfs_sb_version_hasrmapbt(&mp->m_sb)) { if (xfs_sb_version_hasreflink(&mp->m_sb) && mp->m_sb.sb_rblocks) {
if (mp->m_sb.sb_rblocks) { xfs_alert(mp,
xfs_alert(mp, "reflink not compatible with realtime device!");
"EXPERIMENTAL reverse mapping btree not compatible with realtime device!"); error = -EINVAL;
error = -EINVAL; goto out_filestream_unmount;
goto out_filestream_unmount; }
}
if (xfs_sb_version_hasrmapbt(&mp->m_sb) && mp->m_sb.sb_rblocks) {
xfs_alert(mp, xfs_alert(mp,
"EXPERIMENTAL reverse mapping btree feature enabled. Use at your own risk!"); "reverse mapping btree not compatible with realtime device!");
error = -EINVAL;
goto out_filestream_unmount;
} }
error = xfs_mountfs(mp); error = xfs_mountfs(mp);
......
...@@ -44,6 +44,12 @@ extern void xfs_qm_exit(void); ...@@ -44,6 +44,12 @@ extern void xfs_qm_exit(void);
# define XFS_REALTIME_STRING # define XFS_REALTIME_STRING
#endif #endif
#ifdef CONFIG_XFS_ONLINE_SCRUB
# define XFS_SCRUB_STRING "scrub, "
#else
# define XFS_SCRUB_STRING
#endif
#ifdef DEBUG #ifdef DEBUG
# define XFS_DBG_STRING "debug" # define XFS_DBG_STRING "debug"
#else #else
...@@ -54,6 +60,7 @@ extern void xfs_qm_exit(void); ...@@ -54,6 +60,7 @@ extern void xfs_qm_exit(void);
#define XFS_BUILD_OPTIONS XFS_ACL_STRING \ #define XFS_BUILD_OPTIONS XFS_ACL_STRING \
XFS_SECURITY_STRING \ XFS_SECURITY_STRING \
XFS_REALTIME_STRING \ XFS_REALTIME_STRING \
XFS_SCRUB_STRING \
XFS_DBG_STRING /* DBG must be last */ XFS_DBG_STRING /* DBG must be last */
struct xfs_inode; struct xfs_inode;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册