Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

+24 -11
+2 -2
fs/xfs/libxfs/xfs_sb.c
··· 118 118 bool check_inprogress, 119 119 bool check_version) 120 120 { 121 - u32 agcount = 0; 122 - u32 rem; 121 + uint32_t agcount = 0; 122 + uint32_t rem; 123 123 124 124 if (sbp->sb_magicnum != XFS_SB_MAGIC) { 125 125 xfs_warn(mp, "bad magic number");
+15 -9
fs/xfs/xfs_super.c
··· 1666 1666 "DAX unsupported by block device. Turning off DAX."); 1667 1667 mp->m_flags &= ~XFS_MOUNT_DAX; 1668 1668 } 1669 - if (xfs_sb_version_hasreflink(&mp->m_sb)) 1669 + if (xfs_sb_version_hasreflink(&mp->m_sb)) { 1670 1670 xfs_alert(mp, 1671 1671 "DAX and reflink cannot be used together!"); 1672 + error = -EINVAL; 1673 + goto out_filestream_unmount; 1674 + } 1672 1675 } 1673 1676 1674 1677 if (mp->m_flags & XFS_MOUNT_DISCARD) { ··· 1684 1681 } 1685 1682 } 1686 1683 1687 - if (xfs_sb_version_hasrmapbt(&mp->m_sb)) { 1688 - if (mp->m_sb.sb_rblocks) { 1689 - xfs_alert(mp, 1690 - "EXPERIMENTAL reverse mapping btree not compatible with realtime device!"); 1691 - error = -EINVAL; 1692 - goto out_filestream_unmount; 1693 - } 1684 + if (xfs_sb_version_hasreflink(&mp->m_sb) && mp->m_sb.sb_rblocks) { 1694 1685 xfs_alert(mp, 1695 - "EXPERIMENTAL reverse mapping btree feature enabled. Use at your own risk!"); 1686 + "reflink not compatible with realtime device!"); 1687 + error = -EINVAL; 1688 + goto out_filestream_unmount; 1689 + } 1690 + 1691 + if (xfs_sb_version_hasrmapbt(&mp->m_sb) && mp->m_sb.sb_rblocks) { 1692 + xfs_alert(mp, 1693 + "reverse mapping btree not compatible with realtime device!"); 1694 + error = -EINVAL; 1695 + goto out_filestream_unmount; 1696 1696 } 1697 1697 1698 1698 error = xfs_mountfs(mp);
+7
fs/xfs/xfs_super.h
··· 44 44 # define XFS_REALTIME_STRING 45 45 #endif 46 46 47 + #ifdef CONFIG_XFS_ONLINE_SCRUB 48 + # define XFS_SCRUB_STRING "scrub, " 49 + #else 50 + # define XFS_SCRUB_STRING 51 + #endif 52 + 47 53 #ifdef DEBUG 48 54 # define XFS_DBG_STRING "debug" 49 55 #else ··· 60 54 #define XFS_BUILD_OPTIONS XFS_ACL_STRING \ 61 55 XFS_SECURITY_STRING \ 62 56 XFS_REALTIME_STRING \ 57 + XFS_SCRUB_STRING \ 63 58 XFS_DBG_STRING /* DBG must be last */ 64 59 65 60 struct xfs_inode;