[GIT PULL] xfs: new features for v5.1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

Here are a number of new features and bug fixes for 5.1.  They've
undergone a week's worth of fstesting and merge cleanly with master as
of this morning.  Most of the changes center on improving metadata
validation and fixing problems with online fsck, though there's also a
new cache to speed up unlinked inode handling and cleanup of the copy on
write code in preparation for future features.  Let me know if you
encounter any problems with this merge.

--D

The following changes since commit d13937116f1e82bf508a6325111b322c30c85eb9:

  Linux 5.0-rc6 (2019-02-10 14:42:20 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-5.1-merge-4

for you to fetch changes up to 1b9598c8fb9965fff901c4caa21fed9644c34df3:

  xfs: fix reporting supported extra file attributes for statx() (2019-03-01 08:57:25 -0800)

----------------------------------------------------------------
Changes for Linux 5.1:
- Fix online fsck to handle inode btrees correctly on 64k block
  filesystems.
- Teach online fsck to check directory and attribute names for invalid
  characters.
- Miscellanous fixes for online fsck.
- Introduce a new panic mask so that we can halt immediately on
  metadata corruption (for debugging purposes)
- Fix a block mapping race during writeback.
- Cache unlinked inode list backrefs in memory to speed up list
  processing.
- Separate the bnobt/cntbt and inobt/finobt buffer verifiers so that we
  can detect crosslinked btrees.
- Refactor magic number verification so that we can standardize it.
- Strengthen ondisk metadata structure offset build time verification.
- Fix a memory corruption problem in the listxattr code.
- Fix a shutdown problem during log recovery due to unreserved finobt
  expansion.
- Fix a referential integrity problem where O_TMPFILE inodes were put on
  the unlinked list with nlink > 0 which would cause asserts during log
  recovery if the system went down immediately.
- Refactor the delayed allocation allocator to be more clever about the
  possibility that its mapping might be stale.
- Various fixes to the copy on write mechanism.
- Make CoW preallocation suitable for use even with writes that wouldn't
  otherwise require it.
- Refactor an internal API.
- Fix some statx implementation bugs.
- Fix miscellaneous compiler and static checker complaints.

----------------------------------------------------------------
Brian Foster (15):
      xfs: update fork seq counter on data fork changes
      xfs: validate writeback mapping using data fork seq counter
      xfs: remove superfluous writeback mapping eof trimming
      xfs: create delalloc bmapi wrapper for full extent allocation
      xfs: use the latest extent at writeback delalloc conversion time
      xfs: clarify documentation for the function to reverify buffers
      xfs: always check magic values in on-disk byte order
      xfs: create a separate finobt verifier
      xfs: distinguish between inobt and finobt magic values
      xfs: split up allocation btree verifier
      xfs: distinguish between bnobt and cntbt magic values
      xfs: use verifier magic field in dir2 leaf verifiers
      xfs: miscellaneous verifier magic value fixups
      xfs: factor xfs_da3_blkinfo verification into common helper
      xfs: compile time offset checks for common v4/v5 metadata

Christoph Hellwig (18):
      xfs: remove the io_type field from the writeback context and ioend
      xfs: remove the s_maxbytes checks in xfs_map_blocks
      xfs: simplify the xfs_bmap_btree_to_extents calling conventions
      xfs: factor out two helpers from xfs_bmapi_write
      xfs: split XFS_BMAPI_DELALLOC handling from xfs_bmapi_write
      xfs: move transaction handling to xfs_bmapi_convert_delalloc
      xfs: move stat accounting to xfs_bmapi_convert_delalloc
      xfs: move xfs_iomap_write_allocate to xfs_aops.c
      xfs: remove the truncate short cut in xfs_map_blocks
      xfs: retry COW fork delalloc conversion when no extent was found
      xfs: make xfs_bmbt_to_iomap more useful
      xfs: fix SEEK_DATA for speculative COW fork preallocation
      xfs: don't use delalloc extents for COW on files with extsize hints
      xfs: also truncate holes covered by COW blocks
      xfs: merge COW handling into xfs_file_iomap_begin_delay
      xfs: make COW fork unwritten extent conversions more robust
      xfs: report IOMAP_F_SHARED from xfs_file_iomap_begin_delay
      xfs: introduce an always_cow mode

Colin Ian King (1):
      xfs: fix uninitialized error variable

Darrick J. Wong (33):
      xfs: never try to scrub more than 64 inodes per inobt record
      xfs: check the ir_startino alignment directly
      xfs: check inobt record alignment on big block filesystems
      xfs: hoist inode cluster checks out of loop
      xfs: clean up the inode cluster checking in the inobt scrub
      xfs: scrub big block inode btrees correctly
      xfs: consolidate scrub dinode mapping code into a single function
      xfs: abort xattr scrub if fatal signals are pending
      xfs: scrub should flag dir/attr offsets that aren't mappable with xfs_dablk_t
      xfs: fix off-by-one error in rtbitmap cross-reference
      xfs: check directory name validity
      xfs: check attribute name validity
      xfs: clean up iunlink functions
      xfs: add xfs_verify_agino_or_null helper
      xfs: refactor AGI unlinked bucket updates
      xfs: strengthen AGI unlinked inode bucket pointer checks
      xfs: refactor inode unlinked pointer update functions
      xfs: refactor unlinked list search and mapping to a separate function
      xfs: refactor inode update in iunlink_remove
      xfs: add tracepoints for high level iunlink operations
      xfs: cache unlinked pointers in an rhashtable
      xfs: add inode magic to inode verifier
      xfs: add magic numbers to dquot buffer ops
      xfs: use buf ops magic to detect btree block type
      xfs: don't overflow xattr listent buffer
      xfs: rename m_inotbt_nores to m_finobt_nores
      xfs: reserve blocks for ifree transaction during log recovery
      xfs: don't ever put nlink > 0 inodes on the unlinked list
      xfs: fix xfs_buf magic number endian checks
      xfs: don't pass iomap flags to xfs_reflink_allocate_cow
      xfs: rework breaking of shared extents in xfs_file_iomap_begin
      xfs: fix uninitialized error variables
      xfs: fix backwards endian conversion in scrub

Luis R. Rodriguez (1):
      xfs: fix reporting supported extra file attributes for statx()

Marco Benatto (1):
      xfs: Introduce XFS_PTAG_VERIFIER_ERROR panic mask

YueHaibing (1):
      xfs: remove duplicated xfs_defer.h

 Documentation/filesystems/xfs.txt  |   3 +-
 fs/xfs/libxfs/xfs_ag.c             |   6 +-
 fs/xfs/libxfs/xfs_ag_resv.c        |   2 +-
 fs/xfs/libxfs/xfs_alloc.c          |  12 +-
 fs/xfs/libxfs/xfs_alloc_btree.c    |  74 ++--
 fs/xfs/libxfs/xfs_attr.c           |  17 +
 fs/xfs/libxfs/xfs_attr.h           |   2 +-
 fs/xfs/libxfs/xfs_attr_leaf.c      |  21 +-
 fs/xfs/libxfs/xfs_attr_remote.c    |   8 +-
 fs/xfs/libxfs/xfs_bmap.c           | 302 +++++++++------
 fs/xfs/libxfs/xfs_bmap.h           |  16 +-
 fs/xfs/libxfs/xfs_bmap_btree.c     |  13 +-
 fs/xfs/libxfs/xfs_da_btree.c       |  49 ++-
 fs/xfs/libxfs/xfs_da_format.h      |   3 +
 fs/xfs/libxfs/xfs_dir2.c           |  17 +
 fs/xfs/libxfs/xfs_dir2.h           |   1 +
 fs/xfs/libxfs/xfs_dir2_block.c     |  10 +-
 fs/xfs/libxfs/xfs_dir2_data.c      |  12 +-
 fs/xfs/libxfs/xfs_dir2_leaf.c      | 100 +----
 fs/xfs/libxfs/xfs_dir2_node.c      |  10 +-
 fs/xfs/libxfs/xfs_dquot_buf.c      |   4 +
 fs/xfs/libxfs/xfs_errortag.h       |   4 +-
 fs/xfs/libxfs/xfs_ialloc.c         |   3 +-
 fs/xfs/libxfs/xfs_ialloc_btree.c   |  29 +-
 fs/xfs/libxfs/xfs_iext_tree.c      |  13 +-
 fs/xfs/libxfs/xfs_inode_buf.c      |  11 +-
 fs/xfs/libxfs/xfs_inode_fork.h     |   2 +-
 fs/xfs/libxfs/xfs_refcount_btree.c |   3 +-
 fs/xfs/libxfs/xfs_rmap_btree.c     |   3 +-
 fs/xfs/libxfs/xfs_sb.c             |   7 +-
 fs/xfs/libxfs/xfs_shared.h         |   4 +-
 fs/xfs/libxfs/xfs_symlink_remote.c |   3 +-
 fs/xfs/libxfs/xfs_types.c          |  24 ++
 fs/xfs/libxfs/xfs_types.h          |   3 +
 fs/xfs/scrub/agheader.c            |  10 +-
 fs/xfs/scrub/agheader_repair.c     |  12 +-
 fs/xfs/scrub/attr.c                |  11 +
 fs/xfs/scrub/bmap.c                |  27 ++
 fs/xfs/scrub/dir.c                 |   6 +
 fs/xfs/scrub/ialloc.c              | 330 +++++++++++-----
 fs/xfs/scrub/repair.c              |   3 +-
 fs/xfs/scrub/repair.h              |   3 -
 fs/xfs/scrub/rtbitmap.c            |   5 +-
 fs/xfs/scrub/trace.h               |  45 +++
 fs/xfs/xfs_aops.c                  | 266 +++++++------
 fs/xfs/xfs_aops.h                  |  24 +-
 fs/xfs/xfs_attr_list.c             |   1 +
 fs/xfs/xfs_bmap_util.c             |   9 +-
 fs/xfs/xfs_buf.c                   |  72 +++-
 fs/xfs/xfs_buf.h                   |   8 +-
 fs/xfs/xfs_error.c                 |   6 +-
 fs/xfs/xfs_error.h                 |   1 +
 fs/xfs/xfs_file.c                  |  31 +-
 fs/xfs/xfs_fsops.c                 |   1 +
 fs/xfs/xfs_globals.c               |   2 +-
 fs/xfs/xfs_inode.c                 | 769 +++++++++++++++++++++++++++----------
 fs/xfs/xfs_inode.h                 |   3 +
 fs/xfs/xfs_iomap.c                 | 518 ++++++++++++-------------
 fs/xfs/xfs_iomap.h                 |   7 +-
 fs/xfs/xfs_iops.c                  |  21 +-
 fs/xfs/xfs_log_recover.c           |  14 +-
 fs/xfs/xfs_mount.c                 |   5 +
 fs/xfs/xfs_mount.h                 |  10 +-
 fs/xfs/xfs_ondisk.h                |  21 +
 fs/xfs/xfs_pnfs.c                  |   2 +-
 fs/xfs/xfs_reflink.c               | 150 +++-----
 fs/xfs/xfs_reflink.h               |  18 +-
 fs/xfs/xfs_super.c                 |  22 +-
 fs/xfs/xfs_sysctl.h                |   1 +
 fs/xfs/xfs_sysfs.c                 |  24 ++
 fs/xfs/xfs_trace.h                 | 115 ++++--
 fs/xfs/xfs_trans_bmap.c            |   1 -
 fs/xfs/xfs_trans_buf.c             |   2 +-
 fs/xfs/xfs_trans_extfree.c         |   1 -
 fs/xfs/xfs_trans_refcount.c        |   1 -
 fs/xfs/xfs_trans_rmap.c            |   1 -
 fs/xfs/xfs_xattr.c                 |   3 +
 77 files changed, 2134 insertions(+), 1239 deletions(-)



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux