Hi Linus, Here are the changes for xfs for 4.14. Most of these are cleanups and fixes for bad behavior, as we're mostly focusing on improving reliablity this cycle (read: there's potentially a lot of stuff on the horizon for 4.15 so better to spend a few weeks killing other bugs now.) Anyway, I tried a test merge+build against master this morning and it worked fine for me, so please let me know if you encounter any problems. --D The following changes since commit 6470812e22261d2342ef1597be62e63a0423d691: Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (2017-08-21 14:07:48 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-4.14-merge-7 for you to fetch changes up to 6c370590cfe0c36bcd62d548148aa65c984540b7: xfs: use kmem_free to free return value of kmem_zalloc (2017-09-03 10:40:46 -0700) ---------------------------------------------------------------- Updates for 4.14: - Write unmount record for a ro mount to avoid unnecessary log replay - Clean up orphaned inodes when mounting fs readonly - Resubmit inode log items when buffer writeback fails to avoid umount hang - Fix log recovery corruption problems when log headers wrap around the end - Avoid infinite loop searching for free inodes when inode counters are wrong - Evict inodes involved with log redo so that we don't leak them later - Fix a potential race between reclaim and inode cluster freeing - Refactor the inode joining code w.r.t. transaction rolling & deferred ops - Fix a bug where the log doesn't properly deal with dirty buffers that are about to become ordered buffers - Fix the extent swap code to deal with making dirty buffers ordered properly - Consolidate page fault handlers - Refactor the incore extent manipulation functions to use the iext abstractions instead of directly modifying with extent data - Disable crashy chattr +/-x until we fix it - Don't allow us to set S_DAX for v2 inodes - Various cleanups - Clarify some documentation - Fix a problem where fsync and a log commit race to send the disk a flush command, resulting in a small window where power fail data loss could occur - Simplify some rmap operations in the fcollapse code - Fix some use-after-free problems in async writeback ---------------------------------------------------------------- Amir Goldstein (1): xfs: fix incorrect log_flushed on fsync Brian Foster (15): xfs: fix recovery failure when log record header wraps log end xfs: always verify the log tail during recovery xfs: fix log recovery corruption error due to tail overwrite xfs: add log item pinning error injection tag xfs: handle -EFSCORRUPTED during head/tail verification xfs: add log recovery tracepoint for head/tail xfs: open-code xfs_buf_item_dirty() xfs: remove unnecessary dirty bli format check for ordered bufs xfs: ordered buffer log items are never formatted xfs: refactor buffer logging into buffer dirtying helper xfs: don't log dirty ranges for ordered buffers xfs: skip bmbt block ino validation during owner change xfs: move bmbt owner change to last step of extent swap xfs: disallow marking previously dirty buffers as ordered xfs: relog dirty buffers during swapext bmbt owner change Carlos Maiolino (3): xfs: Add infrastructure needed for error propagation during buffer IO failure xfs: Properly retry failed inode items in case of error during buffer writeback xfs: stop searching for free slots in an inode chunk when there are none Christoph Hellwig (16): xfs: refactor xfs_trans_roll xfs: rename xfs_defer_join to xfs_defer_ijoin xfs: remove the ip argument to xfs_defer_finish iomap: return VM_FAULT_* codes from iomap_page_mkwrite xfs: consolidate the various page fault handlers xfs: add a xfs_iext_update_extent helper xfs: switch xfs_bmap_local_to_extents to use xfs_iext_insert xfs: use xfs_iext_get_extent in xfs_bmap_first_unused xfs: move some code around inside xfs_bmap_shift_extents xfs: use xfs_iext_*_extent helpers in xfs_bmap_shift_extents xfs: use xfs_iext_*_extent helpers in xfs_bmap_split_extent_at xfs: rewrite xfs_bmap_count_leaves using xfs_iext_get_extent xfs: replace xfs_qm_get_rtblks with a direct call to xfs_bmap_count_leaves xfs: disable per-inode DAX flag xfs: don't set v3 xflags for v2 inodes xfs: open code end_buffer_async_write in xfs_finish_page_writeback Darrick J. Wong (4): xfs: evict all inodes involved with log redo item xfs: simplify the rmap code in xfs_bmse_merge fsmap: fix documentation of FMR_OF_LAST xfs: fix compiler warnings Eric Sandeen (3): xfs: write unmount record for ro mounts xfs: toggle readonly state around xfs_log_mount_finish xfs: remove unused flags arg from xfs_file_iomap_begin_delay Omar Sandoval (1): xfs: check for race with xfs_reclaim_inode() in xfs_ifree_cluster() Pan Bian (1): xfs: use kmem_free to free return value of kmem_zalloc fs/inode.c | 1 + fs/internal.h | 1 - fs/iomap.c | 4 +- fs/xfs/libxfs/xfs_attr.c | 156 +++++++++++----------- fs/xfs/libxfs/xfs_attr_leaf.c | 6 +- fs/xfs/libxfs/xfs_attr_remote.c | 39 +++--- fs/xfs/libxfs/xfs_bmap.c | 280 +++++++++++++++++++--------------------- fs/xfs/libxfs/xfs_bmap_btree.c | 1 + fs/xfs/libxfs/xfs_btree.c | 27 ++-- fs/xfs/libxfs/xfs_btree.h | 3 +- fs/xfs/libxfs/xfs_defer.c | 29 ++--- fs/xfs/libxfs/xfs_defer.h | 5 +- fs/xfs/libxfs/xfs_ialloc.c | 57 ++++---- fs/xfs/libxfs/xfs_inode_fork.c | 21 ++- fs/xfs/libxfs/xfs_inode_fork.h | 2 + fs/xfs/libxfs/xfs_refcount.c | 2 +- fs/xfs/xfs_aops.c | 71 ++++++---- fs/xfs/xfs_attr_inactive.c | 6 +- fs/xfs/xfs_bmap_item.c | 2 +- fs/xfs/xfs_bmap_util.c | 124 ++++++++++++------ fs/xfs/xfs_bmap_util.h | 1 + fs/xfs/xfs_buf_item.c | 137 +++++++++++++------- fs/xfs/xfs_buf_item.h | 5 +- fs/xfs/xfs_dquot.c | 2 +- fs/xfs/xfs_error.c | 3 + fs/xfs/xfs_error.h | 4 +- fs/xfs/xfs_file.c | 97 +++++--------- fs/xfs/xfs_icache.c | 10 +- fs/xfs/xfs_inode.c | 40 ++++-- fs/xfs/xfs_inode_item.c | 47 ++++++- fs/xfs/xfs_ioctl.c | 41 ++++-- fs/xfs/xfs_iomap.c | 10 +- fs/xfs/xfs_iops.c | 2 +- fs/xfs/xfs_log.c | 33 +++-- fs/xfs/xfs_log_recover.c | 161 ++++++++++++++--------- fs/xfs/xfs_qm.c | 44 ++----- fs/xfs/xfs_refcount_item.c | 2 +- fs/xfs/xfs_reflink.c | 11 +- fs/xfs/xfs_rtalloc.c | 2 +- fs/xfs/xfs_super.c | 2 +- fs/xfs/xfs_symlink.c | 5 +- fs/xfs/xfs_trace.h | 48 ++++++- fs/xfs/xfs_trans.c | 28 +--- fs/xfs/xfs_trans.h | 17 ++- fs/xfs/xfs_trans_ail.c | 20 ++- fs/xfs/xfs_trans_buf.c | 79 +++++++----- fs/xfs/xfs_trans_inode.c | 14 ++ fs/xfs/xfs_trans_priv.h | 31 +++++ include/linux/fs.h | 1 + include/uapi/linux/fsmap.h | 2 +- 50 files changed, 1027 insertions(+), 709 deletions(-) -- 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