Hi Linus, Here's the second round of patches for XFS for 4.18. Most of the commits are small cleanups, bug fixes, and continued strengthening of metadata verifiers; the bulk of the diff is the conversion of the fs/xfs/ tree to use SPDX tags. This series has been run through a full xfstests run over the weekend and through a quick xfstests run against this morning's master, with no major failures reported. --D The following changes since commit afd9d6a1df75807684fa40dab77c52e104e5c74b: fs: use ->is_partially_uptodate in page_cache_seek_hole_data (2018-06-01 18:37:33 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-4.18-merge-10 for you to fetch changes up to 89e9b5c0915aaeaf673a14e794c559768eda5534: xfs: update incore per-AG inode count (2018-06-11 21:53:52 -0700) ---------------------------------------------------------------- Changes since last update: - Strengthen metadata checking to avoid ASSERTing on bad disk contents - Validate btree records that are being retrieved for clients - Strengthen root inode verification - Convert license blurbs to SPDX tags - Enable changing DAX flag on directories - Fix some writeback deadlocks in reflink - Refactor out some old xfs helpers - Move type verifiers to a separate file - Fix some fuzzer crashes - Various other bug fixes ---------------------------------------------------------------- Arnd Bergmann (1): xfs: fix string handling in label get/set functions Darrick J. Wong (15): xfs: don't forbid setting dax flag on directories if device doesn't dax xfs: don't assert when reporting on-disk corruption while loading btree xfs: remove redundant ASSERT on insufficient bestfree length in _leaf_addname xfs: xfs_alloc_get_rec should return EFSCORRUPTED for obvious bnobt corruption xfs: btree lookup shouldn't ASSERT on empty btree nodes xfs: don't ASSERT on short form btree root pointer of zero xfs: don't return garbage buffers in xfs_da3_node_read xfs: check directory bestfree information in the verifier xfs: introduce xfs_btree_debug_check_ptr xfs: strengthen btree pointer checks before use xfs: don't assert when on-disk btree pointers are garbage xfs: explicitly pass buffer size to xfs_corruption_error xfs: don't assert on corrupted unlinked inode list iomap: fsync swap files before iterating mappings xfs: update incore per-AG inode count Dave Chinner (13): xfs: verify AGI unlinked list contains valid blocks xfs: catch bad stripe alignment configurations xfs: verify extent size hint is valid in inode verifier xfs: verify COW extent size hint is valid in inode verifier xfs: verify root inode more thoroughly xfs: push corruption -> ESTALE conversion to xfs_nfs_get_inode() xfs: validate btree records on retrieval xfs: convert to SPDX license tags xfs: setup VFS i_rwsem lockdep state correctly xfs: xfs_reflink_convert_cow() memory allocation deadlock xfs: move various type verifiers to common file xfs: clean up MIN/MAX xfs: replace do_mod with native operations Eric Sandeen (2): xfs: use xfs_trans_getsb in xfs_sync_sb_buf xfs: don't call xfs_da_shrink_inode with NULL bp fs/iomap.c | 6 +- fs/xfs/Makefile | 15 +--- fs/xfs/kmem.c | 14 +-- fs/xfs/kmem.h | 14 +-- fs/xfs/libxfs/xfs_ag_resv.c | 16 +--- fs/xfs/libxfs/xfs_ag_resv.h | 16 +--- fs/xfs/libxfs/xfs_alloc.c | 95 ++++++-------------- fs/xfs/libxfs/xfs_alloc.h | 18 +--- fs/xfs/libxfs/xfs_alloc_btree.c | 15 +--- fs/xfs/libxfs/xfs_alloc_btree.h | 14 +-- fs/xfs/libxfs/xfs_attr.c | 14 +-- fs/xfs/libxfs/xfs_attr_leaf.c | 21 +---- fs/xfs/libxfs/xfs_attr_leaf.h | 14 +-- fs/xfs/libxfs/xfs_attr_remote.c | 14 +-- fs/xfs/libxfs/xfs_attr_remote.h | 14 +-- fs/xfs/libxfs/xfs_attr_sf.h | 14 +-- fs/xfs/libxfs/xfs_bit.c | 14 +-- fs/xfs/libxfs/xfs_bit.h | 14 +-- fs/xfs/libxfs/xfs_bmap.c | 54 ++++++------ fs/xfs/libxfs/xfs_bmap.h | 14 +-- fs/xfs/libxfs/xfs_bmap_btree.c | 14 +-- fs/xfs/libxfs/xfs_bmap_btree.h | 14 +-- fs/xfs/libxfs/xfs_btree.c | 171 ++++++++++++++++++------------------ fs/xfs/libxfs/xfs_btree.h | 14 +-- fs/xfs/libxfs/xfs_da_btree.c | 24 ++--- fs/xfs/libxfs/xfs_da_btree.h | 14 +-- fs/xfs/libxfs/xfs_da_format.c | 14 +-- fs/xfs/libxfs/xfs_da_format.h | 14 +-- fs/xfs/libxfs/xfs_defer.c | 16 +--- fs/xfs/libxfs/xfs_defer.h | 16 +--- fs/xfs/libxfs/xfs_dir2.c | 14 +-- fs/xfs/libxfs/xfs_dir2.h | 14 +-- fs/xfs/libxfs/xfs_dir2_block.c | 22 ++--- fs/xfs/libxfs/xfs_dir2_data.c | 122 +++++++++++++++----------- fs/xfs/libxfs/xfs_dir2_leaf.c | 26 ++---- fs/xfs/libxfs/xfs_dir2_node.c | 17 +--- fs/xfs/libxfs/xfs_dir2_priv.h | 14 +-- fs/xfs/libxfs/xfs_dir2_sf.c | 14 +-- fs/xfs/libxfs/xfs_dquot_buf.c | 14 +-- fs/xfs/libxfs/xfs_errortag.h | 15 +--- fs/xfs/libxfs/xfs_format.h | 14 +-- fs/xfs/libxfs/xfs_fs.h | 14 +-- fs/xfs/libxfs/xfs_ialloc.c | 160 +++++++++------------------------- fs/xfs/libxfs/xfs_ialloc.h | 21 +---- fs/xfs/libxfs/xfs_ialloc_btree.c | 14 +-- fs/xfs/libxfs/xfs_ialloc_btree.h | 14 +-- fs/xfs/libxfs/xfs_iext_tree.c | 10 +-- fs/xfs/libxfs/xfs_inode_buf.c | 34 ++++---- fs/xfs/libxfs/xfs_inode_buf.h | 14 +-- fs/xfs/libxfs/xfs_inode_fork.c | 14 +-- fs/xfs/libxfs/xfs_inode_fork.h | 14 +-- fs/xfs/libxfs/xfs_log_format.h | 14 +-- fs/xfs/libxfs/xfs_log_recover.h | 14 +-- fs/xfs/libxfs/xfs_log_rlimit.c | 14 +-- fs/xfs/libxfs/xfs_quota_defs.h | 14 +-- fs/xfs/libxfs/xfs_refcount.c | 63 +++++++++----- fs/xfs/libxfs/xfs_refcount.h | 16 +--- fs/xfs/libxfs/xfs_refcount_btree.c | 17 +--- fs/xfs/libxfs/xfs_refcount_btree.h | 16 +--- fs/xfs/libxfs/xfs_rmap.c | 55 +++++++++--- fs/xfs/libxfs/xfs_rmap.h | 16 +--- fs/xfs/libxfs/xfs_rmap_btree.c | 15 +--- fs/xfs/libxfs/xfs_rmap_btree.h | 14 +-- fs/xfs/libxfs/xfs_rtbitmap.c | 26 +----- fs/xfs/libxfs/xfs_sb.c | 40 +++++---- fs/xfs/libxfs/xfs_sb.h | 14 +-- fs/xfs/libxfs/xfs_shared.h | 14 +-- fs/xfs/libxfs/xfs_symlink_remote.c | 14 +-- fs/xfs/libxfs/xfs_trans_resv.c | 30 ++----- fs/xfs/libxfs/xfs_trans_resv.h | 14 +-- fs/xfs/libxfs/xfs_trans_space.h | 14 +-- fs/xfs/libxfs/xfs_types.c | 173 +++++++++++++++++++++++++++++++++++++ fs/xfs/libxfs/xfs_types.h | 33 ++++--- fs/xfs/mrlock.h | 14 +-- fs/xfs/scrub/agheader.c | 18 +--- fs/xfs/scrub/agheader_repair.c | 16 +--- fs/xfs/scrub/alloc.c | 16 +--- fs/xfs/scrub/attr.c | 16 +--- fs/xfs/scrub/bmap.c | 16 +--- fs/xfs/scrub/btree.c | 16 +--- fs/xfs/scrub/btree.h | 16 +--- fs/xfs/scrub/common.c | 16 +--- fs/xfs/scrub/common.h | 16 +--- fs/xfs/scrub/dabtree.c | 16 +--- fs/xfs/scrub/dabtree.h | 16 +--- fs/xfs/scrub/dir.c | 16 +--- fs/xfs/scrub/ialloc.c | 16 +--- fs/xfs/scrub/inode.c | 16 +--- fs/xfs/scrub/parent.c | 16 +--- fs/xfs/scrub/quota.c | 16 +--- fs/xfs/scrub/refcount.c | 16 +--- fs/xfs/scrub/repair.c | 16 +--- fs/xfs/scrub/repair.h | 16 +--- fs/xfs/scrub/rmap.c | 16 +--- fs/xfs/scrub/rtbitmap.c | 16 +--- fs/xfs/scrub/scrub.c | 16 +--- fs/xfs/scrub/scrub.h | 16 +--- fs/xfs/scrub/symlink.c | 16 +--- fs/xfs/scrub/trace.c | 16 +--- fs/xfs/scrub/trace.h | 16 +--- fs/xfs/scrub/xfs_scrub.h | 16 +--- fs/xfs/xfs.h | 14 +-- fs/xfs/xfs_acl.c | 14 +-- fs/xfs/xfs_acl.h | 14 +-- fs/xfs/xfs_aops.c | 25 +++--- fs/xfs/xfs_aops.h | 14 +-- fs/xfs/xfs_attr.h | 14 +-- fs/xfs/xfs_attr_inactive.c | 14 +-- fs/xfs/xfs_attr_list.c | 19 +--- fs/xfs/xfs_bmap_item.c | 16 +--- fs/xfs/xfs_bmap_item.h | 16 +--- fs/xfs/xfs_bmap_util.c | 26 ++---- fs/xfs/xfs_bmap_util.h | 14 +-- fs/xfs/xfs_buf.c | 15 +--- fs/xfs/xfs_buf.h | 14 +-- fs/xfs/xfs_buf_item.c | 16 +--- fs/xfs/xfs_buf_item.h | 14 +-- fs/xfs/xfs_dir2_readdir.c | 14 +-- fs/xfs/xfs_discard.c | 14 +-- fs/xfs/xfs_dquot.c | 14 +-- fs/xfs/xfs_dquot.h | 14 +-- fs/xfs/xfs_dquot_item.c | 14 +-- fs/xfs/xfs_dquot_item.h | 14 +-- fs/xfs/xfs_error.c | 19 +--- fs/xfs/xfs_error.h | 23 ++--- fs/xfs/xfs_export.c | 29 +++---- fs/xfs/xfs_export.h | 14 +-- fs/xfs/xfs_extent_busy.c | 14 +-- fs/xfs/xfs_extent_busy.h | 14 +-- fs/xfs/xfs_extfree_item.c | 14 +-- fs/xfs/xfs_extfree_item.h | 14 +-- fs/xfs/xfs_file.c | 14 +-- fs/xfs/xfs_filestream.c | 14 +-- fs/xfs/xfs_filestream.h | 14 +-- fs/xfs/xfs_fsmap.c | 16 +--- fs/xfs/xfs_fsmap.h | 16 +--- fs/xfs/xfs_fsops.c | 14 +-- fs/xfs/xfs_fsops.h | 14 +-- fs/xfs/xfs_globals.c | 14 +-- fs/xfs/xfs_icache.c | 14 +-- fs/xfs/xfs_icache.h | 14 +-- fs/xfs/xfs_icreate_item.c | 14 +-- fs/xfs/xfs_icreate_item.h | 14 +-- fs/xfs/xfs_inode.c | 35 ++++---- fs/xfs/xfs_inode.h | 14 +-- fs/xfs/xfs_inode_item.c | 14 +-- fs/xfs/xfs_inode_item.h | 14 +-- fs/xfs/xfs_ioctl.c | 33 +++---- fs/xfs/xfs_ioctl.h | 14 +-- fs/xfs/xfs_ioctl32.c | 14 +-- fs/xfs/xfs_ioctl32.h | 14 +-- fs/xfs/xfs_iomap.c | 20 +---- fs/xfs/xfs_iomap.h | 18 +--- fs/xfs/xfs_iops.c | 22 ++--- fs/xfs/xfs_iops.h | 14 +-- fs/xfs/xfs_itable.c | 16 +--- fs/xfs/xfs_itable.h | 14 +-- fs/xfs/xfs_linux.h | 36 +------- fs/xfs/xfs_log.c | 18 +--- fs/xfs/xfs_log.h | 14 +-- fs/xfs/xfs_log_cil.c | 14 +-- fs/xfs/xfs_log_priv.h | 14 +-- fs/xfs/xfs_log_recover.c | 67 ++++++++------ fs/xfs/xfs_message.c | 14 +-- fs/xfs/xfs_mount.c | 21 ++--- fs/xfs/xfs_mount.h | 16 +--- fs/xfs/xfs_mru_cache.c | 14 +-- fs/xfs/xfs_mru_cache.h | 14 +-- fs/xfs/xfs_ondisk.h | 14 +-- fs/xfs/xfs_qm.c | 14 +-- fs/xfs/xfs_qm.h | 14 +-- fs/xfs/xfs_qm_bhv.c | 14 +-- fs/xfs/xfs_qm_syscalls.c | 14 +-- fs/xfs/xfs_quota.h | 14 +-- fs/xfs/xfs_quotaops.c | 14 +-- fs/xfs/xfs_refcount_item.c | 16 +--- fs/xfs/xfs_refcount_item.h | 16 +--- fs/xfs/xfs_reflink.c | 16 +--- fs/xfs/xfs_reflink.h | 16 +--- fs/xfs/xfs_rmap_item.c | 16 +--- fs/xfs/xfs_rmap_item.h | 16 +--- fs/xfs/xfs_rtalloc.c | 24 ++--- fs/xfs/xfs_rtalloc.h | 14 +-- fs/xfs/xfs_stats.c | 14 +-- fs/xfs/xfs_stats.h | 14 +-- fs/xfs/xfs_super.c | 16 +--- fs/xfs/xfs_super.h | 14 +-- fs/xfs/xfs_symlink.c | 14 +-- fs/xfs/xfs_symlink.h | 14 +-- fs/xfs/xfs_sysctl.c | 14 +-- fs/xfs/xfs_sysctl.h | 14 +-- fs/xfs/xfs_sysfs.c | 14 +-- fs/xfs/xfs_sysfs.h | 14 +-- fs/xfs/xfs_trace.c | 14 +-- fs/xfs/xfs_trace.h | 14 +-- fs/xfs/xfs_trans.c | 14 +-- fs/xfs/xfs_trans.h | 14 +-- fs/xfs/xfs_trans_ail.c | 14 +-- fs/xfs/xfs_trans_bmap.c | 16 +--- fs/xfs/xfs_trans_buf.c | 14 +-- fs/xfs/xfs_trans_dquot.c | 14 +-- fs/xfs/xfs_trans_extfree.c | 14 +-- fs/xfs/xfs_trans_inode.c | 14 +-- fs/xfs/xfs_trans_priv.h | 14 +-- fs/xfs/xfs_trans_refcount.c | 16 +--- fs/xfs/xfs_trans_rmap.c | 16 +--- fs/xfs/xfs_xattr.c | 14 +-- 207 files changed, 939 insertions(+), 3195 deletions(-) create mode 100644 fs/xfs/libxfs/xfs_types.c -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html