]> Git Repo - J-linux.git/commitdiff
Merge tag 'xfs-6.5-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux
authorLinus Torvalds <[email protected]>
Wed, 5 Jul 2023 21:08:03 +0000 (14:08 -0700)
committerLinus Torvalds <[email protected]>
Wed, 5 Jul 2023 21:08:03 +0000 (14:08 -0700)
Pull more xfs updates from Darrick Wong:

 - Fix some ordering problems with log items during log recovery

 - Don't deadlock the system by trying to flush busy freed extents while
   holding on to busy freed extents

 - Improve validation of log geometry parameters when reading the
   primary superblock

 - Validate the length field in the AGF header

 - Fix recordset filtering bugs when re-calling GETFSMAP to return more
   results when the resultset didn't previously fit in the caller's
   buffer

 - Fix integer overflows in GETFSMAP when working with rt volumes larger
   than 2^32 fsblocks

 - Fix GETFSMAP reporting the undefined space beyond the last rtextent

 - Fix filtering bugs in GETFSMAP's log device backend if the log ever
   becomes longer than 2^32 fsblocks

 - Improve validation of file offsets in the GETFSMAP range parameters

 - Fix an off by one bug in the pmem media failure notification
   computation

 - Validate the length field in the AGI header too

* tag 'xfs-6.5-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
  xfs: Remove unneeded semicolon
  xfs: AGI length should be bounds checked
  xfs: fix the calculation for "end" and "length"
  xfs: fix xfs_btree_query_range callers to initialize btree rec fully
  xfs: validate fsmap offsets specified in the query keys
  xfs: fix logdev fsmap query result filtering
  xfs: clean up the rtbitmap fsmap backend
  xfs: fix getfsmap reporting past the last rt extent
  xfs: fix integer overflows in the fsmap rtbitmap and logdev backends
  xfs: fix interval filtering in multi-step fsmap queries
  xfs: fix bounds check in xfs_defer_agfl_block()
  xfs: AGF length has never been bounds checked
  xfs: journal geometry is not properly bounds checked
  xfs: don't block in busy flushing when freeing extents
  xfs: allow extent free intents to be retried
  xfs: pass alloc flags through to xfs_extent_busy_flush()
  xfs: use deferred frees for btree block freeing
  xfs: don't reverse order of items in bulk AIL insertion
  xfs: remove redundant initializations of pointers drop_leaf and save_leaf

1  2 
fs/xfs/xfs_trace.h

diff --combined fs/xfs/xfs_trace.h
index 4db669203149d940ff4146a6b0417d19aa308d78,5a906bed6f56e41edae1b57d03fd28d0b997be5d..f3cc204bb4bf62f3a40a01a3fd50dac315196b8e
@@@ -1445,6 -1445,7 +1445,6 @@@ DEFINE_RW_EVENT(xfs_file_direct_write)
  DEFINE_RW_EVENT(xfs_file_dax_write);
  DEFINE_RW_EVENT(xfs_reflink_bounce_dio_write);
  
 -
  DECLARE_EVENT_CLASS(xfs_imap_class,
        TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count,
                 int whichfork, struct xfs_bmbt_irec *irec),
@@@ -1534,7 -1535,6 +1534,7 @@@ DEFINE_SIMPLE_IO_EVENT(xfs_zero_eof)
  DEFINE_SIMPLE_IO_EVENT(xfs_end_io_direct_write);
  DEFINE_SIMPLE_IO_EVENT(xfs_end_io_direct_write_unwritten);
  DEFINE_SIMPLE_IO_EVENT(xfs_end_io_direct_write_append);
 +DEFINE_SIMPLE_IO_EVENT(xfs_file_splice_read);
  
  DECLARE_EVENT_CLASS(xfs_itrunc_class,
        TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size),
@@@ -3623,6 -3623,31 +3623,31 @@@ DEFINE_FSMAP_EVENT(xfs_fsmap_low_key)
  DEFINE_FSMAP_EVENT(xfs_fsmap_high_key);
  DEFINE_FSMAP_EVENT(xfs_fsmap_mapping);
  
+ DECLARE_EVENT_CLASS(xfs_fsmap_linear_class,
+       TP_PROTO(struct xfs_mount *mp, u32 keydev, uint64_t bno),
+       TP_ARGS(mp, keydev, bno),
+       TP_STRUCT__entry(
+               __field(dev_t, dev)
+               __field(dev_t, keydev)
+               __field(xfs_fsblock_t, bno)
+       ),
+       TP_fast_assign(
+               __entry->dev = mp->m_super->s_dev;
+               __entry->keydev = new_decode_dev(keydev);
+               __entry->bno = bno;
+       ),
+       TP_printk("dev %d:%d keydev %d:%d bno 0x%llx",
+                 MAJOR(__entry->dev), MINOR(__entry->dev),
+                 MAJOR(__entry->keydev), MINOR(__entry->keydev),
+                 __entry->bno)
+ )
+ #define DEFINE_FSMAP_LINEAR_EVENT(name) \
+ DEFINE_EVENT(xfs_fsmap_linear_class, name, \
+       TP_PROTO(struct xfs_mount *mp, u32 keydev, uint64_t bno), \
+       TP_ARGS(mp, keydev, bno))
+ DEFINE_FSMAP_LINEAR_EVENT(xfs_fsmap_low_key_linear);
+ DEFINE_FSMAP_LINEAR_EVENT(xfs_fsmap_high_key_linear);
  DECLARE_EVENT_CLASS(xfs_getfsmap_class,
        TP_PROTO(struct xfs_mount *mp, struct xfs_fsmap *fsmap),
        TP_ARGS(mp, fsmap),
This page took 0.057598 seconds and 4 git commands to generate.