linux/fs/xfs
Linus Torvalds 1885cdbfbb vfs-6.19-rc1.iomap
-----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCaSmOZAAKCRCRxhvAZXjc
 ooCXAQCwzX2GS/55QHV6JXBBoNxguuSQ5dCj91ZmTfHzij0xNAEAhKEBw7iMGX72
 c2/x+xYf+Pc6mAfxdus5RLMggqBFPAk=
 =jInB
 -----END PGP SIGNATURE-----

Merge tag 'vfs-6.19-rc1.iomap' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull iomap updates from Christian Brauner:
 "FUSE iomap Support for Buffered Reads:

    This adds iomap support for FUSE buffered reads and readahead. This
    enables granular uptodate tracking with large folios so only
    non-uptodate portions need to be read. Also fixes a race condition
    with large folios + writeback cache that could cause data corruption
    on partial writes followed by reads.

     - Refactored iomap read/readahead bio logic into helpers
     - Added caller-provided callbacks for read operations
     - Moved buffered IO bio logic into new file
     - FUSE now uses iomap for read_folio and readahead

  Zero Range Folio Batch Support:

    Add folio batch support for iomap_zero_range() to handle dirty
    folios over unwritten mappings. Fix raciness issues where dirty data
    could be lost during zero range operations.

     - filemap_get_folios_tag_range() helper for dirty folio lookup
     - Optional zero range dirty folio processing
     - XFS fills dirty folios on zero range of unwritten mappings
     - Removed old partial EOF zeroing optimization

  DIO Write Completions from Interrupt Context:

    Restore pre-iomap behavior where pure overwrite completions run
    inline rather than being deferred to workqueue. Reduces context
    switches for high-performance workloads like ScyllaDB.

     - Removed unused IOCB_DIO_CALLER_COMP code
     - Error completions always run in user context (fixes zonefs)
     - Reworked REQ_FUA selection logic
     - Inverted IOMAP_DIO_INLINE_COMP to IOMAP_DIO_OFFLOAD_COMP

  Buffered IO Cleanups:

    Some performance and code clarity improvements:

     - Replace manual bitmap scanning with find_next_bit()
     - Simplify read skip logic for writes
     - Optimize pending async writeback accounting
     - Better variable naming
     - Documentation for iomap_finish_folio_write() requirements

  Misaligned Vectors for Zoned XFS:

    Enables sub-block aligned vectors in XFS always-COW mode for zoned
    devices via new IOMAP_DIO_FSBLOCK_ALIGNED flag.

  Bug Fixes:

     - Allocate s_dio_done_wq for async reads (fixes syzbot report after
       error completion changes)
     - Fix iomap_read_end() for already uptodate folios (regression fix)"

* tag 'vfs-6.19-rc1.iomap' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (40 commits)
  iomap: allocate s_dio_done_wq for async reads as well
  iomap: fix iomap_read_end() for already uptodate folios
  iomap: invert the polarity of IOMAP_DIO_INLINE_COMP
  iomap: support write completions from interrupt context
  iomap: rework REQ_FUA selection
  iomap: always run error completions in user context
  fs, iomap: remove IOCB_DIO_CALLER_COMP
  iomap: use find_next_bit() for uptodate bitmap scanning
  iomap: use find_next_bit() for dirty bitmap scanning
  iomap: simplify when reads can be skipped for writes
  iomap: simplify ->read_folio_range() error handling for reads
  iomap: optimize pending async writeback accounting
  docs: document iomap writeback's iomap_finish_folio_write() requirement
  iomap: account for unaligned end offsets when truncating read range
  iomap: rename bytes_pending/bytes_accounted to bytes_submitted/bytes_not_submitted
  xfs: support sub-block aligned vectors in always COW mode
  iomap: add IOMAP_DIO_FSBLOCK_ALIGNED flag
  xfs: error tag to force zeroing on debug kernels
  iomap: remove old partial eof zeroing optimization
  xfs: fill dirty folios on zero range of unwritten mappings
  ...
2025-12-01 08:14:00 -08:00
..
libxfs vfs-6.19-rc1.iomap 2025-12-01 08:14:00 -08:00
scrub xfs: fix out of bounds memory read error in symlink repair 2025-11-20 11:06:24 +01:00
Kconfig xfs: XFS_ONLINE_SCRUB_STATS should depend on DEBUG_FS 2025-10-21 09:52:59 +02:00
Makefile xfs: export zone stats in /proc/*/mountstats 2025-03-03 08:17:10 -07:00
xfs_acl.c
xfs_acl.h
xfs_aops.c iomap: add caller-provided callbacks for read and readahead 2025-11-05 12:57:23 +01:00
xfs_aops.h xfs: implement direct writes to zoned RT devices 2025-03-03 08:17:07 -07:00
xfs_attr_inactive.c xfs: remove bp->b_error check in xfs_attr3_root_inactive 2025-01-13 14:56:15 +01:00
xfs_attr_item.c xfs: remove the expr argument to XFS_TEST_ERROR 2025-09-18 17:32:02 +02:00
xfs_attr_item.h xfs: don't use a xfs_log_iovec for attr_item names and values 2025-07-24 17:30:15 +02:00
xfs_attr_list.c xfs: eliminate lockdep false positives in xfs_attr_shortform_list 2024-11-22 09:52:03 +01:00
xfs_bio_io.c xfs: simplify xfs_rw_bdev 2025-05-07 07:31:07 -06:00
xfs_bmap_item.c xfs: don't use a xfs_log_iovec for ri_buf in log recovery 2025-07-24 17:30:15 +02:00
xfs_bmap_item.h xfs: add helpers to compute log item overhead 2025-05-07 14:25:30 -07:00
xfs_bmap_util.c xfs: implement buffered writes to zoned RT devices 2025-03-03 08:17:07 -07:00
xfs_bmap_util.h xfs: implement buffered writes to zoned RT devices 2025-03-03 08:17:07 -07:00
xfs_buf_item_recover.c xfs: track the number of blocks in each buftarg 2025-09-22 12:55:20 +02:00
xfs_buf_item.c xfs: don't use a xfs_log_iovec for ri_buf in log recovery 2025-07-24 17:30:15 +02:00
xfs_buf_item.h xfs: don't use a xfs_log_iovec for ri_buf in log recovery 2025-07-24 17:30:15 +02:00
xfs_buf_mem.c xfs: compute buffer address correctly in xmbuf_map_backing_mem 2025-04-14 11:22:52 +02:00
xfs_buf_mem.h xfs: cleanup mapping tmpfs folios into the buffer cache 2025-03-10 14:29:44 +01:00
xfs_buf.c xfs: don't set bt_nr_sectors to a negative number 2025-10-22 10:04:39 +02:00
xfs_buf.h xfs: don't set bt_nr_sectors to a negative number 2025-10-22 10:04:39 +02:00
xfs_dahash_test.c
xfs_dahash_test.h
xfs_dir2_readdir.c
xfs_discard.c xfs: free xfs_busy_extents structure when no RT extents are queued 2025-11-06 08:59:19 +01:00
xfs_discard.h
xfs_dquot_item_recover.c xfs: don't use a xfs_log_iovec for ri_buf in log recovery 2025-07-24 17:30:15 +02:00
xfs_dquot_item.c xfs: attach dquot buffer to dquot log item buffer 2024-12-12 17:45:11 -08:00
xfs_dquot_item.h xfs: attach dquot buffer to dquot log item buffer 2024-12-12 17:45:11 -08:00
xfs_dquot.c xfs: avoid dquot buffer pin deadlock 2025-06-27 14:14:37 +02:00
xfs_dquot.h xfs: prepare to reuse the dquot pointer space in struct xfs_inode 2024-12-23 13:06:03 -08:00
xfs_drain.c xfs: allow queued realtime intents to drain before scrubbing 2024-12-23 13:06:06 -08:00
xfs_drain.h xfs: allow queued realtime intents to drain before scrubbing 2024-12-23 13:06:06 -08:00
xfs_error.c xfs: constify xfs_errortag_random_default 2025-09-19 18:03:08 +02:00
xfs_error.h xfs: remove pointless externs in xfs_error.h 2025-09-18 17:32:02 +02:00
xfs_exchmaps_item.c xfs: don't use a xfs_log_iovec for ri_buf in log recovery 2025-07-24 17:30:15 +02:00
xfs_exchmaps_item.h
xfs_exchrange.c xfs: don't call remap_verify_area with sb write protection held 2025-01-24 12:08:50 +01:00
xfs_exchrange.h
xfs_export.c
xfs_export.h
xfs_extent_busy.c xfs: implement zoned garbage collection 2025-03-03 08:17:07 -07:00
xfs_extent_busy.h xfs: don't allocate the xfs_extent_busy structure for zoned RTGs 2025-07-18 17:42:31 +02:00
xfs_extfree_item.c xfs: remove the xfs_efi_log_format_64_t typedef 2025-09-16 12:25:05 +02:00
xfs_extfree_item.h xfs: remove the xfs_efd_log_format_t typedef 2025-09-16 12:25:05 +02:00
xfs_file.c xfs: support sub-block aligned vectors in always COW mode 2025-11-05 13:09:27 +01:00
xfs_file.h
xfs_filestream.c xfs: free the item in xfs_mru_cache_insert on failure 2025-05-14 19:00:12 +02:00
xfs_filestream.h
xfs_fsmap.c xfs: return the allocated transaction from xfs_trans_alloc_empty 2025-07-24 17:30:13 +02:00
xfs_fsmap.h xfs: clean up xfs_getfsmap_helper arguments 2024-11-05 13:38:35 -08:00
xfs_fsops.c xfs: remove the flags argument to xfs_buf_read_uncached 2025-03-18 14:47:45 +01:00
xfs_fsops.h xfs: support reserved blocks for the rt extent counter 2025-03-03 08:16:43 -07:00
xfs_globals.c xfs: remove deprecated sysctl knobs 2025-09-05 08:48:23 -07:00
xfs_handle.c simplify xfs_find_handle() a bit 2024-11-03 01:28:06 -05:00
xfs_handle.h
xfs_health.c xfs: report realtime refcount btree corruption errors to the health system 2024-12-23 13:06:14 -08:00
xfs_hooks.c
xfs_hooks.h
xfs_icache.c xfs: remove deprecated mount options 2025-09-05 08:48:23 -07:00
xfs_icache.h
xfs_icreate_item.c xfs: don't use a xfs_log_iovec for ri_buf in log recovery 2025-07-24 17:30:15 +02:00
xfs_icreate_item.h
xfs_inode_item_recover.c xfs: don't use a xfs_log_iovec for ri_buf in log recovery 2025-07-24 17:30:15 +02:00
xfs_inode_item.c xfs: rework datasync tracking and execution 2025-09-23 15:12:43 +02:00
xfs_inode_item.h xfs: rework datasync tracking and execution 2025-09-23 15:12:43 +02:00
xfs_inode.c xfs: new code for 6.18 2025-09-29 14:35:44 -07:00
xfs_inode.h xfs: disallow atomic writes on DAX 2025-08-11 14:03:44 +02:00
xfs_ioctl.c xfs: implement XFS_IOC_DIOINFO in terms of vfs_getattr 2025-08-28 14:20:03 +02:00
xfs_ioctl.h tree-wide: s/struct fileattr/struct file_kattr/g 2025-07-04 16:14:39 +02:00
xfs_ioctl32.c
xfs_ioctl32.h
xfs_iomap.c vfs-6.19-rc1.iomap 2025-12-01 08:14:00 -08:00
xfs_iomap.h iomap: replace iomap_folio_ops with iomap_write_ops 2025-07-14 10:51:33 +02:00
xfs_iops.c xfs: kconfig and feature changes for 2025 LTS [6.18 v2 2/2] 2025-09-05 20:27:25 +02:00
xfs_iops.h xfs: refine atomic write size check in xfs_file_write_iter() 2025-05-07 14:25:31 -07:00
xfs_itable.c xfs: remove XFS_IBULK_SAME_AG 2025-08-11 14:03:31 +02:00
xfs_itable.h xfs: remove XFS_IBULK_SAME_AG 2025-08-11 14:03:31 +02:00
xfs_iunlink_item.c xfs: pass the iunlink item to the xfs_iunlink_update_dinode trace point 2024-11-05 13:38:26 -08:00
xfs_iunlink_item.h
xfs_iwalk.c xfs: return the allocated transaction from xfs_trans_alloc_empty 2025-07-24 17:30:13 +02:00
xfs_iwalk.h xfs: factor out a xfs_iwalk_args helper 2024-11-05 13:38:27 -08:00
xfs_linux.h xfs: remove deprecated sysctl knobs 2025-09-05 08:48:23 -07:00
xfs_log_cil.c xfs: use better names for size members in xfs_log_vec 2025-07-24 17:30:15 +02:00
xfs_log_priv.h xfs: fix log CRC mismatches between i386 and other architectures 2025-09-16 12:27:41 +02:00
xfs_log_recover.c xfs: fix log CRC mismatches between i386 and other architectures 2025-09-16 12:27:41 +02:00
xfs_log.c xfs: new code for 6.18 2025-09-29 14:35:44 -07:00
xfs_log.h xfs: move the XLOG_REG_ constants out of xfs_log_format.h 2025-09-16 14:08:47 +02:00
xfs_message.c xfs: remove the EXPERIMENTAL warning for pNFS 2025-05-14 12:42:12 +02:00
xfs_message.h xfs: remove the EXPERIMENTAL warning for pNFS 2025-05-14 12:42:12 +02:00
xfs_mount.c xfs: remove deprecated mount options 2025-09-05 08:48:23 -07:00
xfs_mount.h xfs: cache open zone in inode->i_private 2025-10-21 11:32:50 +02:00
xfs_mru_cache.c fs: WQ_PERCPU added to alloc_workqueue users 2025-09-19 16:15:07 +02:00
xfs_mru_cache.h
xfs_notify_failure.c xfs: use bt_nr_sectors in xfs_dax_translate_range 2025-09-22 12:55:20 +02:00
xfs_notify_failure.h xfs: react to fsdax failure notifications on the rt device 2024-12-23 13:06:09 -08:00
xfs_pnfs.c xfs: remove the EXPERIMENTAL warning for pNFS 2025-05-14 12:42:12 +02:00
xfs_pnfs.h
xfs_pwork.c
xfs_pwork.h
xfs_qm_bhv.c xfs: Do not allow norecovery mount with quotacheck 2025-02-14 09:40:35 +01:00
xfs_qm_syscalls.c xfs: delalloc and quota softlimit timers are incoherent 2024-11-22 11:24:45 +01:00
xfs_qm.c xfs: return the allocated transaction from xfs_trans_alloc_empty 2025-07-24 17:30:13 +02:00
xfs_qm.h xfs: keep quota directory inode loaded 2024-12-12 17:45:08 -08:00
xfs_quota.h xfs: prepare to reuse the dquot pointer space in struct xfs_inode 2024-12-23 13:06:03 -08:00
xfs_quotaops.c
xfs_refcount_item.c xfs: don't use a xfs_log_iovec for ri_buf in log recovery 2025-07-24 17:30:15 +02:00
xfs_refcount_item.h xfs: add helpers to compute log item overhead 2025-05-07 14:25:30 -07:00
xfs_reflink.c iomap: replace iomap_folio_ops with iomap_write_ops 2025-07-14 10:51:33 +02:00
xfs_reflink.h xfs: add xfs_calc_atomic_write_unit_max() 2025-05-07 14:25:32 -07:00
xfs_rmap_item.c xfs: don't use a xfs_log_iovec for ri_buf in log recovery 2025-07-24 17:30:15 +02:00
xfs_rmap_item.h xfs: add helpers to compute log item overhead 2025-05-07 14:25:30 -07:00
xfs_rtalloc.c xfs: return the allocated transaction from xfs_trans_alloc_empty 2025-07-24 17:30:13 +02:00
xfs_rtalloc.h xfs: make metabtree reservations global 2025-03-03 08:16:43 -07:00
xfs_stats.c xfs: introduce realtime refcount btree ondisk definitions 2024-12-23 13:06:10 -08:00
xfs_stats.h xfs: introduce realtime refcount btree ondisk definitions 2024-12-23 13:06:10 -08:00
xfs_super.c vfs-6.18-rc7.fixes 2025-11-17 09:11:27 -08:00
xfs_super.h xfs: react to fsdax failure notifications on the rt device 2024-12-23 13:06:09 -08:00
xfs_symlink.c
xfs_symlink.h
xfs_sysctl.c xfs: remove deprecated sysctl knobs 2025-09-05 08:48:23 -07:00
xfs_sysctl.h xfs: remove deprecated sysctl knobs 2025-09-05 08:48:23 -07:00
xfs_sysfs.c xfs: add tunable threshold parameter for triggering zone GC 2025-04-14 10:41:33 +02:00
xfs_sysfs.h xfs: contain more sysfs code in xfs_sysfs.c 2025-03-03 08:17:10 -07:00
xfs_trace.c xfs: add the zoned space allocator 2025-03-03 08:16:56 -07:00
xfs_trace.h vfs-6.18-rc1.inode 2025-09-29 09:42:30 -07:00
xfs_trans_ail.c xfs: remove the expr argument to XFS_TEST_ERROR 2025-09-18 17:32:02 +02:00
xfs_trans_buf.c xfs: add a b_iodone callback to struct xfs_buf 2025-01-14 11:38:15 +01:00
xfs_trans_dquot.c xfs: prepare to reuse the dquot pointer space in struct xfs_inode 2024-12-23 13:06:03 -08:00
xfs_trans_priv.h xfs: remove the leftover xfs_{set,clear}_li_failed infrastructure 2025-04-14 10:24:30 +02:00
xfs_trans.c xfs: track the number of blocks in each buftarg 2025-09-22 12:55:20 +02:00
xfs_trans.h xfs: don't use a xfs_log_iovec for ri_buf in log recovery 2025-07-24 17:30:15 +02:00
xfs_xattr.c xfs: replace strncpy with memcpy in xattr listing 2025-07-08 11:50:09 +02:00
xfs_xattr.h
xfs_zone_alloc.c xfs: fix zone selection in xfs_select_open_zone_mru 2025-11-05 16:54:38 +01:00
xfs_zone_alloc.h xfs: stop passing an inode to the zone space reservation helpers 2025-07-24 17:30:14 +02:00
xfs_zone_gc.c xfs: prevent gc from picking the same zone twice 2025-10-31 12:06:03 +01:00
xfs_zone_info.c xfs: rename oz_write_pointer to oz_allocated 2025-07-24 17:30:14 +02:00
xfs_zone_priv.h xfs: cache open zone in inode->i_private 2025-10-21 11:32:50 +02:00
xfs_zone_space_resv.c xfs: kick off inodegc when failing to reserve zoned blocks 2025-08-19 14:37:07 +02:00
xfs.h