Hi all, Assuming that Eric approves of the new patches 3, 8, and 9 in the series I just sent, this is a pull request to pull in all the changes needed for 5.10. Granted I'm not sure where we are as far as reviewing the userspace tooling changes needed to support inode btree counters or bigtime. I suppose I could have shoved all that to the end to make the libxfs sync parts cleaner. Anyhow, I'll start reading Allison's delayed xattr series and hope the rest of you take a look at the other 5.10 bug fixes that are sitting on the list. :) --D The following changes since commit 75379bd4b2c5a5924fd6ca203bbaaf41dc6c71cd: xfsprogs: Release v5.9.0 (2020-10-20 11:41:03 -0400) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev.git tags/libxfs-5.10-sync-part2_2020-11-10 for you to fetch changes up to 73304f9226372be509b3e7301d6f393b49f90e10: xfs: set xefi_discard when creating a deferred agfl free log intent item (2020-11-10 09:53:32 -0800) ---------------------------------------------------------------- xfsprogs: sync with 5.10, part 2 The second part of syncing libxfs with 5.10. ---------------------------------------------------------------- Carlos Maiolino (5): xfs: remove kmem_realloc() xfs: remove typedef xfs_attr_sf_entry_t xfs: Remove typedef xfs_attr_shortform_t xfs: Use variable-size array for nameval in xfs_attr_sf_entry xfs: Convert xfs_attr_sf macros to inline functions Christoph Hellwig (2): xfs: move the buffer retry logic to xfs_buf.c xfs: simplify xfs_trans_getsb Darrick J. Wong (58): mkfs: allow users to specify rtinherit=0 mkfs: don't pass on extent size inherit flags when extent size is zero xfs: remove unnecessary parameter from scrub_scan_estimate_blocks xfs_db: report ranges of invalid rt blocks xfs_repair: skip the rmap and refcount btree checks when the levels are garbage xfs_repair: correctly detect partially written extents xfs_repair: directly compare refcount records libxfs-apply: don't add duplicate headers xfs_db: add a directory path lookup command xfs_db: add an ls command xfs: store inode btree block counts in AGI header xfs: use the finobt block counts to speed up mount times xfs: support inode btree blockcounts in online repair xfs_db: support displaying inode btree block counts in AGI header xfs_db: add inobtcnt upgrade path xfs_repair: check inode btree block counters in AGI xfs_repair: regenerate inode btree block counters in AGI mkfs: enable the inode btree counter feature xfs: enable new inode btree counters feature libxfs: create a real struct timespec64 libxfs: refactor NSEC_PER_SEC libfrog: define LIBFROG_BULKSTAT_CHUNKSIZE to remove dependence on XFS_INODES_PER_CHUNK libfrog: convert cvttime to return time64_t xfs_quota: convert time_to_string to use time64_t xfs_db: refactor timestamp printing xfs_db: refactor quota timer printing xfs_logprint: refactor timestamp printing xfs: explicitly define inode timestamp range xfs: refactor quota expiration timer modification xfs: refactor default quota grace period setting code xfs: refactor quota timestamp coding xfs: move xfs_log_dinode_to_disk to the log recovery code xfs: redefine xfs_timestamp_t xfs: redefine xfs_ictimestamp_t xfs: widen ondisk inode timestamps to deal with y2038+ xfs: widen ondisk quota expiration timestamps to handle y2038+ libxfs: propagate bigtime inode flag when allocating libfrog: list the bigtime feature when reporting geometry xfs_db: report bigtime format timestamps xfs_db: support printing time limits xfs_db: add bigtime upgrade path xfs_quota: support editing and reporting quotas with bigtime xfs_repair: support bigtime timestamp checking mkfs: format bigtime filesystems xfs: enable big timestamps xfs: don't free rt blocks when we're doing a REMAP bunmapi call xfs: log new intent items created as part of finishing recovered intent items xfs: avoid shared rmap operations for attr fork extents xfs: remove xfs_defer_reset xfs: proper replay of deferred ops queued during log recovery xfs: xfs_defer_capture should absorb remaining block reservations xfs: xfs_defer_capture should absorb remaining transaction reservation xfs: fix an incore inode UAF in xfs_bui_recover xfs: change the order in which child and parent defer ops are finished xfs: periodically relog deferred intent items xfs: only relog deferred intent items if free space in the log gets low xfs: fix high key handling in the rt allocator's query_range function xfs: set xefi_discard when creating a deferred agfl free log intent item Eric Sandeen (1): mkfs: clarify valid "inherit" option values Kaixu Xia (4): xfs: use the existing type definition for di_projid xfs: fix some comments xfs: remove the redundant crc feature check in xfs_attr3_rmt_verify xfs: code cleanup in xfs_attr_leaf_entsize_{remote,local} db/Makefile | 3 +- db/agi.c | 2 + db/attrshort.c | 46 ++-- db/check.c | 37 ++- db/command.c | 2 + db/command.h | 2 + db/dquot.c | 6 +- db/field.c | 10 +- db/field.h | 1 + db/fprint.c | 133 ++++++++-- db/fprint.h | 4 + db/inode.c | 13 +- db/metadump.c | 12 +- db/namei.c | 612 +++++++++++++++++++++++++++++++++++++++++++++ db/sb.c | 158 +++++++++++- db/timelimit.c | 160 ++++++++++++ db/xfs_admin.sh | 6 +- include/kmem.h | 2 +- include/libxfs.h | 1 - include/platform_defs.h.in | 30 +++ include/xfs.h | 2 + include/xfs_fs_compat.h | 12 + include/xfs_inode.h | 33 ++- include/xfs_mount.h | 5 + include/xfs_trace.h | 2 + include/xfs_trans.h | 27 +- include/xqm.h | 20 +- libfrog/bulkstat.h | 4 + libfrog/convert.c | 6 +- libfrog/convert.h | 2 +- libfrog/fsgeom.c | 6 +- libxfs/kmem.c | 2 +- libxfs/libxfs_api_defs.h | 4 + libxfs/libxfs_priv.h | 2 - libxfs/rdwr.c | 11 +- libxfs/trans.c | 7 +- libxfs/util.c | 7 +- libxfs/xfs_ag.c | 5 + libxfs/xfs_alloc.c | 1 + libxfs/xfs_attr.c | 14 +- libxfs/xfs_attr_leaf.c | 43 ++-- libxfs/xfs_attr_remote.c | 2 - libxfs/xfs_attr_sf.h | 29 ++- libxfs/xfs_bmap.c | 19 +- libxfs/xfs_bmap.h | 2 +- libxfs/xfs_da_format.h | 24 +- libxfs/xfs_defer.c | 230 +++++++++++++++-- libxfs/xfs_defer.h | 37 +++ libxfs/xfs_dquot_buf.c | 35 +++ libxfs/xfs_format.h | 211 +++++++++++++++- libxfs/xfs_fs.h | 1 + libxfs/xfs_ialloc.c | 5 + libxfs/xfs_ialloc_btree.c | 65 ++++- libxfs/xfs_iext_tree.c | 2 +- libxfs/xfs_inode_buf.c | 130 +++++----- libxfs/xfs_inode_buf.h | 17 +- libxfs/xfs_inode_fork.c | 8 +- libxfs/xfs_log_format.h | 7 +- libxfs/xfs_quota_defs.h | 8 +- libxfs/xfs_rmap.c | 27 +- libxfs/xfs_rtbitmap.c | 11 +- libxfs/xfs_sb.c | 6 +- libxfs/xfs_shared.h | 3 + libxfs/xfs_trans_inode.c | 17 +- libxlog/xfs_log_recover.c | 2 +- logprint/log_misc.c | 29 ++- logprint/log_print_all.c | 3 +- logprint/logprint.h | 2 + man/man8/mkfs.xfs.8 | 48 +++- man/man8/xfs_admin.8 | 21 ++ man/man8/xfs_db.8 | 43 ++++ mkfs/xfs_mkfs.c | 70 +++++- quota/edit.c | 79 +++++- quota/quota.c | 16 +- quota/quota.h | 9 +- quota/report.c | 16 +- quota/util.c | 5 +- repair/attr_repair.c | 24 +- repair/dinode.c | 226 +++++++++++------ repair/phase5.c | 5 + repair/quotacheck.c | 11 +- repair/rmap.c | 4 +- repair/scan.c | 65 ++++- scrub/common.c | 2 - scrub/fscounters.c | 9 +- scrub/fscounters.h | 2 +- scrub/inodes.c | 5 +- scrub/phase6.c | 7 +- scrub/phase7.c | 5 +- scrub/progress.c | 1 - tools/libxfs-apply | 14 +- 91 files changed, 2609 insertions(+), 465 deletions(-) create mode 100644 db/namei.c create mode 100644 db/timelimit.c