Hi folks, The for-next branch of the xfs-linux repository at: git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git has just been updated. Patches often get missed, so please check if your outstanding patches were in this update. If they have not been in this update, please resubmit them to linux-xfs@xxxxxxxxxxxxxxx so they can be picked up in the next update. Though really, we should only be adding bugfixes from now on. :) The new head of the for-next branch is commit: d4bc4c5fd177 xfs: return locked status of inode buffer on xfsaild push New Commits: Brian Foster (9): [6b789c337a59] xfs: fix iclog release error check race with shutdown [b73df17e4c5b] xfs: open code insert range extent split helper [dd87f87d87fa] xfs: rework insert range into an atomic operation [211683b21de9] xfs: rework collapse range into an atomic operation [854f82b1f603] xfs: factor out quotaoff intent AIL removal and memory free [8a6271431339] xfs: fix unmount hang and memory leak on shutdown during quotaoff [842a42d126b4] xfs: shutdown on failure to add page to log bio [8d3d7e2b35ea] xfs: trylock underlying buffer on dquot flush [d4bc4c5fd177] xfs: return locked status of inode buffer on xfsaild push Christoph Hellwig (61): [3d8f2821502d] xfs: ensure that the inode uid/gid match values match the icdinode ones [542951592c99] xfs: remove the icdinode di_uid/di_gid members [ba8adad5d036] xfs: remove the kuid/kgid conversion wrappers [13b1f811b14e] xfs: ratelimit xfs_buf_ioerror_alert messages [4ab45e259f31] xfs: ratelimit xfs_discard_page messages [4d542e4c1e28] xfs: reject invalid flags combinations in XFS_IOC_ATTRLIST_BY_HANDLE [5e81357435cc] xfs: remove the ATTR_INCOMPLETE flag [0eb81a5f5c34] xfs: merge xfs_attr_remove into xfs_attr_set [6cc4f4fff10d] xfs: merge xfs_attrmulti_attr_remove into xfs_attrmulti_attr_set [2282a9e65177] xfs: use strndup_user in XFS_IOC_ATTRMULTI_BY_HANDLE [d0ce64391128] xfs: factor out a helper for a single XFS_IOC_ATTRMULTI_BY_HANDLE op [79f2280b9bfd] xfs: remove the name == NULL check from xfs_attr_args_init [4df28c64e438] xfs: remove the MAXNAMELEN check from xfs_attr_args_init [ead189adb8ab] xfs: turn xfs_da_args.value into a void pointer [a25446224353] xfs: pass an initialized xfs_da_args structure to xfs_attr_set [e5171d7e9894] xfs: pass an initialized xfs_da_args to xfs_attr_get [c36f533f1407] xfs: remove the xfs_inode argument to xfs_attr_get_ilocked [e513e25c380a] xfs: remove ATTR_KERNOVAL [d49db18b247d] xfs: remove ATTR_ALLOC and XFS_DA_OP_ALLOCVAL [1d7330199400] xfs: replace ATTR_KERNOTIME with XFS_DA_OP_NOTIME [377f16ac6723] xfs: factor out a xfs_attr_match helper [a9c8c69b4961] xfs: cleanup struct xfs_attr_list_context [fe960087121a] xfs: remove the unused ATTR_ENTRY macro [2f014aad03d8] xfs: open code ATTR_ENTSIZE [3e7a779937a2] xfs: move the legacy xfs_attr_list to xfs_ioctl.c [17e1dd83ea21] xfs: rename xfs_attr_list_int to xfs_attr_list [f60463195179] xfs: lift common checks into xfs_ioc_attr_list [eb241c747463] xfs: lift buffer allocation into xfs_ioc_attr_list [53ac39fdb301] xfs: lift cursor copy in/out into xfs_ioc_attr_list [5a3930e27ef9] xfs: improve xfs_forget_acl [f3e93d95feef] xfs: clean up the ATTR_REPLACE checks [d5f0f49a9bdd] xfs: clean up the attr flag confusion [254f800f8104] xfs: remove XFS_DA_OP_INCOMPLETE [e3a19cdea84a] xfs: embedded the attrlist cursor into struct xfs_attr_list_context [f311d771a090] xfs: clean up bufsize alignment in xfs_ioc_attr_list [ed02d13f5da8] xfs: only allocate the buffer size actually needed in __xfs_set_acl [5680c3907361] xfs: switch xfs_attrmulti_attr_get to lazy attr buffer allocation [183606d82446] xfs: remove the agfl_bno member from struct xfs_agfl [4b97510859b2] xfs: remove the xfs_agfl_t typedef [370c782b9843] xfs: remove XFS_BUF_TO_AGI [9798f615ad2b] xfs: remove XFS_BUF_TO_AGF [3e6e8afd3abb] xfs: remove XFS_BUF_TO_SBP [b941c71947a0] xfs: mark XLOG_FORCED_SHUTDOWN as unlikely [cb3d425fa59a] xfs: remove the unused XLOG_UNMOUNT_REC_TYPE define [550319e9df3a] xfs: remove the unused return value from xfs_log_unmount_write [6178d104075a] xfs: remove dead code from xfs_log_unmount_write [13859c984301] xfs: cleanup xfs_log_unmount_write [b81b79f4eda2] xfs: add a new xfs_sb_version_has_v3inode helper [e9e2eae89ddb] xfs: only check the superblock version for dinode size calculation [b3d1d37544d8] xfs: simplify di_flags2 inheritance in xfs_ialloc [5e28aafe708b] xfs: simplify a check in xfs_ioctl_setattr_check_cowextsize [6471e9c5e7a1] xfs: remove the di_version field from struct icdinode [c7cc296ddd1f] xfs: merge xlog_cil_push into xlog_cil_push_work [81e5b50a8fb5] xfs: factor out a xlog_wait_on_iclog helper [f97a43e43662] xfs: simplify the xfs_log_release_iclog calling convention [a582f32fade2] xfs: simplify log shutdown checking in xfs_log_release_iclog [12e6a0f449d5] xfs: remove the aborted parameter to xlog_state_done_syncing [c814b4f24eba] xfs: refactor xlog_state_clean_iclog [5781464bd1ee] xfs: move the ioerror check out of xlog_state_clean_iclog [693639994b13] xfs: remove xlog_state_want_sync [8b41e3f98e6c] xfs: split xlog_ticket_done Darrick J. Wong (30): [93baa55af1a1] xfs: improve error message when we can't allocate memory for xfs_buf [496b9bcd62b0] xfs: fix use-after-free when aborting corrupt attr inactivation [a71e4228e6f2] xfs: fix xfs_rmap_has_other_keys usage of ECANCELED [8d57c21600a5] xfs: add a function to deal with corrupt buffers post-verifiers [e83cf875d67a] xfs: xfs_buf_corruption_error should take __this_address [ce99494c9699] xfs: fix buffer corruption reporting when xfs_dir3_free_header_check fails [1cb5deb5bc09] xfs: don't ever return a stale pointer from __xfs_dir3_free_read [6fb5aac73310] xfs: check owner of dir3 free blocks [a10c21ed5d52] xfs: check owner of dir3 data blocks [1b2c1a63b678] xfs: check owner of dir3 blocks [2e107cf869ee] xfs: mark dir corrupt when lookup-by-hash fails [806d3909a57e] xfs: mark extended attr corrupt when lookup-by-hash fails [faf8ee8476c1] xfs: xfs_dabuf_map should return ENOMEM when map allocation fails [77ca1eed5a7d] xfs: fix incorrect test in xfs_alloc_ag_vextent_lastblock [37a6547d92af] xfs: xrep_reap_extents should not destroy the bitmap [00b10d487b29] xfs: rename xfs_bitmap to xbitmap [608eb3cee703] xfs: replace open-coded bitmap weight logic [e06536a692e0] xfs: introduce fake roots for ag-rooted btrees [349e1c0380db] xfs: introduce fake roots for inode-rooted btrees [60e3d7070749] xfs: support bulk loading of staged btrees [e6eb33d905c2] xfs: add support for free space btree staging cursors [c29ce8f48e21] xfs: add support for inode btree staging cursors [56e98164ffea] xfs: add support for refcount btree staging cursors [59d677127cf1] xfs: add support for rmap btree staging cursors [5885539f0af3] xfs: preserve default grace interval during quotacheck [afbabf56305f] xfs: drop all altpath buffers at the end of the sibling check [d59f44d3e723] xfs: directory bestfree check should release buffers [27fb5a72f50a] xfs: prohibit fs freezing when using empty transactions [f8e566c0f5e1] xfs: validate the realtime geometry in xfs_validate_sb_common [5cc3c006eb45] xfs: don't write a corrupt unmount record to force summary counter recalc Dave Chinner (22): [7cace18ab576] xfs: introduce new private btree cursor names [576af7322807] xfs: convert btree cursor ag-private member name [92219c292af8] xfs: convert btree cursor inode-private member names [8ef547976a18] xfs: rename btree cursor private btree member flags [352890735e52] xfs: make btree cursor private union anonymous [68422d90dad4] xfs: make the btree cursor union members named structure [c4aa10d04196] xfs: make the btree ag cursor private union anonymous [7ec949212dba] xfs: don't try to write a start record into every iclog [9590e9c68449] xfs: re-order initial space accounting checks in xlog_write [dd401770b0ff] xfs: refactor and split xfs_log_done() [70e42f2d4797] xfs: kill XLOG_TIC_INITED [f10e925def9a] xfs: merge xlog_commit_record with xlog_write_done [3c702f95909a] xfs: refactor unmount record writing [b843299ba5f9] xfs: remove some stale comments from the log code [108a42358a05] xfs: Lower CIL flush limit for large logs [0e7ab7efe774] xfs: Throttle commits on delayed background CIL push [2def2845cc33] xfs: don't allow log IO to be throttled [12eba65b28b0] xfs: Improve metadata buffer reclaim accountability [d59eadaea2b9] xfs: correctly acount for reclaimable slabs [4165994ac967] xfs: factor common AIL item deletion code [8eb807bd8399] xfs: tail updates only need to occur when LSN changes [5806165a6663] xfs: factor inode lookup from xfs_ifree_cluster Eric Biggers (1): [10a98cb16d80] xfs: clear PF_MEMALLOC before exiting xfsaild thread Jules Irenge (1): [daebba1b3609] xfs: Add missing annotation to xfs_ail_check() Kaixu Xia (1): [63337b63e7da] xfs: remove unnecessary ternary from xfs_create Qian Cai (1): [4982bff1ace1] xfs: fix an undefined behaviour in _da3_path_shift Takashi Iwai (1): [17bb60b74124] xfs: Use scnprintf() for avoiding potential buffer overflow Tommi Rantala (1): [3d28e7e27891] xfs: fix regression in "cleanup xfs_dir2_block_getdents" Zheng Bin (1): [d0c7feaf8767] xfs: add agf freeblocks verify in xfs_agf_verify Code Diffstat: fs/xfs/Makefile | 1 + fs/xfs/libxfs/xfs_ag.c | 16 +- fs/xfs/libxfs/xfs_alloc.c | 99 +++-- fs/xfs/libxfs/xfs_alloc.h | 9 + fs/xfs/libxfs/xfs_alloc_btree.c | 119 +++-- fs/xfs/libxfs/xfs_alloc_btree.h | 7 + fs/xfs/libxfs/xfs_attr.c | 351 +++++---------- fs/xfs/libxfs/xfs_attr.h | 114 +---- fs/xfs/libxfs/xfs_attr_leaf.c | 130 +++--- fs/xfs/libxfs/xfs_attr_leaf.h | 1 - fs/xfs/libxfs/xfs_attr_remote.c | 2 +- fs/xfs/libxfs/xfs_bmap.c | 88 ++-- fs/xfs/libxfs/xfs_bmap.h | 3 +- fs/xfs/libxfs/xfs_bmap_btree.c | 50 +-- fs/xfs/libxfs/xfs_btree.c | 93 ++-- fs/xfs/libxfs/xfs_btree.h | 82 +++- fs/xfs/libxfs/xfs_btree_staging.c | 879 +++++++++++++++++++++++++++++++++++++ fs/xfs/libxfs/xfs_btree_staging.h | 123 ++++++ fs/xfs/libxfs/xfs_da_btree.c | 17 +- fs/xfs/libxfs/xfs_da_btree.h | 11 +- fs/xfs/libxfs/xfs_da_format.h | 12 - fs/xfs/libxfs/xfs_dir2_block.c | 33 +- fs/xfs/libxfs/xfs_dir2_data.c | 32 +- fs/xfs/libxfs/xfs_dir2_leaf.c | 2 +- fs/xfs/libxfs/xfs_dir2_node.c | 11 +- fs/xfs/libxfs/xfs_format.h | 48 +- fs/xfs/libxfs/xfs_fs.h | 32 +- fs/xfs/libxfs/xfs_ialloc.c | 35 +- fs/xfs/libxfs/xfs_ialloc_btree.c | 104 ++++- fs/xfs/libxfs/xfs_ialloc_btree.h | 6 + fs/xfs/libxfs/xfs_inode_buf.c | 43 +- fs/xfs/libxfs/xfs_inode_buf.h | 5 - fs/xfs/libxfs/xfs_inode_fork.c | 2 +- fs/xfs/libxfs/xfs_inode_fork.h | 9 +- fs/xfs/libxfs/xfs_log_format.h | 10 +- fs/xfs/libxfs/xfs_refcount.c | 110 ++--- fs/xfs/libxfs/xfs_refcount_btree.c | 104 +++-- fs/xfs/libxfs/xfs_refcount_btree.h | 6 + fs/xfs/libxfs/xfs_rmap.c | 123 +++--- fs/xfs/libxfs/xfs_rmap_btree.c | 99 +++-- fs/xfs/libxfs/xfs_rmap_btree.h | 5 + fs/xfs/libxfs/xfs_sb.c | 49 ++- fs/xfs/libxfs/xfs_trans_resv.c | 2 +- fs/xfs/scrub/agheader.c | 20 +- fs/xfs/scrub/agheader_repair.c | 78 ++-- fs/xfs/scrub/alloc.c | 2 +- fs/xfs/scrub/attr.c | 20 +- fs/xfs/scrub/bitmap.c | 87 ++-- fs/xfs/scrub/bitmap.h | 23 +- fs/xfs/scrub/bmap.c | 4 +- fs/xfs/scrub/dabtree.c | 42 +- fs/xfs/scrub/dir.c | 13 +- fs/xfs/scrub/ialloc.c | 8 +- fs/xfs/scrub/refcount.c | 2 +- fs/xfs/scrub/repair.c | 28 +- fs/xfs/scrub/repair.h | 6 +- fs/xfs/scrub/rmap.c | 2 +- fs/xfs/scrub/scrub.c | 9 + fs/xfs/scrub/trace.c | 4 +- fs/xfs/scrub/trace.h | 4 +- fs/xfs/xfs_acl.c | 132 +++--- fs/xfs/xfs_acl.h | 6 +- fs/xfs/xfs_aops.c | 2 +- fs/xfs/xfs_attr_inactive.c | 6 +- fs/xfs/xfs_attr_list.c | 169 +------ fs/xfs/xfs_bmap_util.c | 73 +-- fs/xfs/xfs_buf.c | 40 +- fs/xfs/xfs_buf.h | 2 + fs/xfs/xfs_buf_item.c | 2 +- fs/xfs/xfs_dir2_readdir.c | 12 +- fs/xfs/xfs_discard.c | 7 +- fs/xfs/xfs_dquot.c | 10 +- fs/xfs/xfs_dquot_item.c | 47 +- fs/xfs/xfs_dquot_item.h | 1 + fs/xfs/xfs_error.c | 7 +- fs/xfs/xfs_error.h | 2 +- fs/xfs/xfs_fsmap.c | 13 +- fs/xfs/xfs_icache.c | 4 + fs/xfs/xfs_inode.c | 212 +++++---- fs/xfs/xfs_inode_item.c | 47 +- fs/xfs/xfs_ioctl.c | 355 +++++++++------ fs/xfs/xfs_ioctl.h | 35 +- fs/xfs/xfs_ioctl32.c | 99 +---- fs/xfs/xfs_iops.c | 25 +- fs/xfs/xfs_itable.c | 6 +- fs/xfs/xfs_linux.h | 27 +- fs/xfs/xfs_log.c | 818 +++++++++++++--------------------- fs/xfs/xfs_log.h | 9 +- fs/xfs/xfs_log_cil.c | 113 +++-- fs/xfs/xfs_log_priv.h | 84 ++-- fs/xfs/xfs_log_recover.c | 18 +- fs/xfs/xfs_mount.c | 2 +- fs/xfs/xfs_qm.c | 69 +-- fs/xfs/xfs_qm_syscalls.c | 13 +- fs/xfs/xfs_quota.h | 4 +- fs/xfs/xfs_stats.c | 10 +- fs/xfs/xfs_super.c | 3 +- fs/xfs/xfs_symlink.c | 6 +- fs/xfs/xfs_trace.c | 2 + fs/xfs/xfs_trace.h | 224 ++++++++-- fs/xfs/xfs_trans.c | 34 +- fs/xfs/xfs_trans_ail.c | 93 ++-- fs/xfs/xfs_trans_priv.h | 6 +- fs/xfs/xfs_xattr.c | 92 ++-- 104 files changed, 3771 insertions(+), 2599 deletions(-) create mode 100644 fs/xfs/libxfs/xfs_btree_staging.c create mode 100644 fs/xfs/libxfs/xfs_btree_staging.h