Hi Linus, Please pull the following branch containing all the new xfs code for 5.11. In this release we add the ability to set a 'needsrepair' flag indicating that we /know/ the filesystem requires xfs_repair, but other than that, it's the usual strengthening of metadata validation and miscellaneous cleanups. The branch merges cleanly with your upstream head as of a few minutes ago, so please let me know if anything strange happens. Note also that I will not be sending any iomap pull requests for this merge window as there weren't any major iomap changes this cycle. --D The following changes since commit 418baf2c28f3473039f2f7377760bd8f6897ae18: Linux 5.10-rc5 (2020-11-22 15:36:08 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-5.11-merge-4 for you to fetch changes up to e82226138b20d4f638426413e83c6b5db532c6a2: xfs: remove xfs_buf_t typedef (2020-12-16 16:07:34 -0800) ---------------------------------------------------------------- New code for 5.11: - Introduce a "needsrepair" "feature" to flag a filesystem as needing a pass through xfs_repair. This is key to enabling filesystem upgrades (in xfs_db) that require xfs_repair to make minor adjustments to metadata. - Refactor parameter checking of recovered log intent items so that we actually use the same validation code as them that generate the intent items. - Various fixes to online scrub not reacting correctly to directory entries pointing to inodes that cannot be igetted. - Refactor validation helpers for data and rt volume extents. - Refactor XFS_TRANS_DQ_DIRTY out of existence. - Fix a longstanding bug where mounting with "uqnoenforce" would start user quotas in non-enforcing mode but /proc/mounts would display "usrquota", implying that they are being enforced. - Don't flag dax+reflink inodes as corruption since that is a valid (but not fully functional) combination right now. - Clean up raid stripe validation functions. - Refactor the inode allocation code to be more straightforward. - Small prep cleanup for idmapping support. - Get rid of the xfs_buf_t typedef. ---------------------------------------------------------------- Christoph Hellwig (2): xfs: remove xfs_vn_setattr_nonsize xfs: open code updating i_mode in xfs_set_acl Darrick J. Wong (21): xfs: move kernel-specific superblock validation out of libxfs xfs: define a new "needrepair" feature xfs: enable the needsrepair feature xfs: hoist recovered bmap intent checks out of xfs_bui_item_recover xfs: improve the code that checks recovered bmap intent items xfs: hoist recovered rmap intent checks out of xfs_rui_item_recover xfs: improve the code that checks recovered rmap intent items xfs: hoist recovered refcount intent checks out of xfs_cui_item_recover xfs: improve the code that checks recovered refcount intent items xfs: hoist recovered extent-free intent checks out of xfs_efi_item_recover xfs: improve the code that checks recovered extent-free intent items xfs: validate feature support when recovering rmap/refcount intents xfs: trace log intent item recovery failures xfs: detect overflows in bmbt records xfs: fix parent pointer scrubber bailing out on unallocated inodes xfs: scrub should mark a directory corrupt if any entries cannot be iget'd xfs: refactor data device extent validation xfs: refactor realtime volume extent validation xfs: refactor file range validation xfs: rename xfs_fc_* back to xfs_fs_* xfs: fix the forward progress assertion in xfs_iwalk_run_callbacks Dave Chinner (5): xfs: introduce xfs_dialloc_roll() xfs: move on-disk inode allocation out of xfs_ialloc() xfs: move xfs_dialloc_roll() into xfs_dialloc() xfs: spilt xfs_dialloc() into 2 functions xfs: remove xfs_buf_t typedef Eric Sandeen (1): xfs: don't catch dax+reflink inodes as corruption in verifier Gao Xiang (3): xfs: introduce xfs_validate_stripe_geometry() xfs: convert noroom, okalloc in xfs_dialloc() to bool xfs: kill ialloced in xfs_dialloc() Joseph Qi (1): xfs: remove unneeded return value check for *init_cursor() Kaixu Xia (6): xfs: delete duplicated tp->t_dqinfo null check and allocation xfs: check tp->t_dqinfo value instead of the XFS_TRANS_DQ_DIRTY flag xfs: directly return if the delta equal to zero xfs: remove unnecessary null check in xfs_generic_create xfs: remove the unused XFS_B_FSB_OFFSET macro xfs: show the proper user quota options Zheng Yongjun (1): fs/xfs: convert comma to semicolon fs/xfs/libxfs/xfs_alloc.c | 16 +-- fs/xfs/libxfs/xfs_bmap.c | 28 ++--- fs/xfs/libxfs/xfs_bmap_btree.c | 2 - fs/xfs/libxfs/xfs_btree.c | 12 +- fs/xfs/libxfs/xfs_format.h | 11 +- fs/xfs/libxfs/xfs_ialloc.c | 170 ++++++++++++++------------- fs/xfs/libxfs/xfs_ialloc.h | 36 +++--- fs/xfs/libxfs/xfs_ialloc_btree.c | 5 - fs/xfs/libxfs/xfs_inode_buf.c | 4 - fs/xfs/libxfs/xfs_refcount.c | 9 -- fs/xfs/libxfs/xfs_rmap.c | 9 -- fs/xfs/libxfs/xfs_rtbitmap.c | 22 ++-- fs/xfs/libxfs/xfs_sb.c | 104 +++++++++++------ fs/xfs/libxfs/xfs_sb.h | 3 + fs/xfs/libxfs/xfs_shared.h | 1 - fs/xfs/libxfs/xfs_types.c | 64 +++++++++++ fs/xfs/libxfs/xfs_types.h | 7 ++ fs/xfs/scrub/agheader_repair.c | 2 - fs/xfs/scrub/bmap.c | 22 +--- fs/xfs/scrub/common.c | 14 --- fs/xfs/scrub/dir.c | 21 +++- fs/xfs/scrub/inode.c | 4 - fs/xfs/scrub/parent.c | 10 +- fs/xfs/scrub/rtbitmap.c | 4 +- fs/xfs/xfs_acl.c | 40 ++++--- fs/xfs/xfs_bmap_item.c | 65 ++++++----- fs/xfs/xfs_buf.c | 24 ++-- fs/xfs/xfs_buf.h | 14 +-- fs/xfs/xfs_buf_item.c | 4 +- fs/xfs/xfs_extfree_item.c | 23 ++-- fs/xfs/xfs_fsops.c | 2 +- fs/xfs/xfs_inode.c | 243 +++++++++------------------------------ fs/xfs/xfs_inode.h | 6 +- fs/xfs/xfs_iops.c | 41 +++---- fs/xfs/xfs_iops.h | 8 -- fs/xfs/xfs_iwalk.c | 2 +- fs/xfs/xfs_log_recover.c | 13 ++- fs/xfs/xfs_qm.c | 26 ++--- fs/xfs/xfs_refcount_item.c | 52 +++++---- fs/xfs/xfs_rmap_item.c | 67 +++++++---- fs/xfs/xfs_rtalloc.c | 20 ++-- fs/xfs/xfs_rtalloc.h | 4 +- fs/xfs/xfs_super.c | 77 ++++++++++--- fs/xfs/xfs_symlink.c | 4 +- fs/xfs/xfs_trace.h | 18 +++ fs/xfs/xfs_trans.c | 2 +- fs/xfs/xfs_trans_buf.c | 16 +-- fs/xfs/xfs_trans_dquot.c | 43 ++----- 48 files changed, 692 insertions(+), 702 deletions(-)