linux/fs/btrfs
Linus Torvalds 6c68fa601b for-7.2-rc6-fixup-worker-tag
-----BEGIN PGP SIGNATURE-----
 
 iQJPBAABCgA5FiEE8rQSAMVO+zA4DBdWxWXV+ddtWDsFAmp03m0bFIAAAAAABAAO
 bWFudTIsMi41KzEuMTIsMiwyAAoJEMVl1fnXbVg7fJgP/1IK0RIWKQ0aa7Y8iDis
 xsJ+Z6qu1vlY/61WGm5s4+Q2orkNBsNl2pNI0EWOt1uKMKmvrfY5V2/fPGolaxFK
 Kj2Okw77uRCesWDhB+lCp4ldgazvge6OzqoueF5oPYmP22Upf1D3rOlxBPEpuemD
 k+nFxFQaHP82T5GC55pZ5xS6mE15tIBNv7DjTmQcTmFzGAYjocx+NaoNKcu8v3EX
 QzfqJa+AWaK2a84sodXwAtCzInD13q0BnofFYwwZ9gGJwJ1m8dC/NqBexA2fa/zF
 4Oa5S5BxwTYpghE8iFqM0LMXsaMU9g1z7jXeNT+IQDTNPk9Vom+R4+BeXfANc6rO
 W2g0zmduzisI14I9XoxPgMTJemCvxa2SLELpWc1wyvG1lHuLEgCHgqMlR/S/Y7TY
 b+yCdDiDer7NtDV4nuxtsI9ZbF+xSxXI9MOaPMnU9IRk/2eMh0mKorxd1PtTc6rY
 y2y/pxm3R2w4TZ2L5sB9qIvgWngH+fNJVsprkQF1ZRrlKOHIphXQ9a/hIM3AqRlF
 b7aWhs/2MJGmZTzVKFSPzKOnxcVuioG08R2SWwXtJrUbQiSQQp2IOriMockJFEtV
 pyHOcga7+D73eop/oc6GMTGRaeG2A/zBWdzBj7DFqti36lGcaVHewU0ho+P74du9
 dnmWDKC+acbp+vdqWPITcCqZ
 =Ier0
 -----END PGP SIGNATURE-----

Merge tag 'for-7.2-rc6-fixup-worker-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux

Pull Btrfs Fixes 2: Electric Boogaloo from David Sterba:
 "This brings back the fixup worker infrastructure.

  It's a mechanism to detect pages/folios that are marked dirty without
  filesystem knowledge and require COW fixup. The consequence of not
  doing so is silent data loss.

  The first patch covers the scenarios in detail, also reflecting folio
  API port and subpage block size support added in recent years. The
  original fixup worker was only for pages.

  The patch is relatively big, half of the code is debugging and support
  code, the rest is the core design around the detection and fix.

  The second patch handles an unlikely case when there's work left
  during unmount"

* tag 'for-7.2-rc6-fixup-worker-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
  btrfs: flush the fixup workers during close_ctree
  btrfs: trigger cow fixup via dirty_folio()
2026-08-06 13:29:15 -07:00
..
tests btrfs: remove op field from struct btrfs_free_space_ctl 2026-06-08 15:53:29 +02:00
accessors.c btrfs: fix typos in comments and strings 2025-09-23 08:49:16 +02:00
accessors.h btrfs: allow mounting filesystems with remap-tree incompat flag 2026-02-03 07:54:35 +01:00
acl.c posix_acl: make posix_acl_to_xattr() alloc the buffer 2026-01-16 10:51:12 +01:00
acl.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
async-thread.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
async-thread.h
backref.c btrfs: fix NULL pointer deref during assertion in btrfs_backref_free_node() 2026-07-14 07:04:10 +02:00
backref.h btrfs: use on stack backref iterator in build_backref_tree() 2026-06-08 15:53:32 +02:00
bio.c btrfs: btrfs_log_dev_io_error() on all bio errors 2026-04-07 20:00:29 +02:00
bio.h btrfs: move existing remaps before relocating block group 2026-02-03 07:54:35 +01:00
block-group.c btrfs: zoned: fix missing chunk metadata reservation 2026-07-21 06:42:40 +02:00
block-group.h btrfs: use the enums instead of int type in struct btrfs_block_group fields 2026-06-08 15:53:30 +02:00
block-rsv.c btrfs: skip global block reserve accounting for rescue mounts 2026-07-21 06:40:18 +02:00
block-rsv.h btrfs: add METADATA_REMAP chunk type 2026-02-03 07:54:27 +01:00
btrfs_inode.h btrfs: trigger cow fixup via dirty_folio() 2026-07-30 19:28:36 +02:00
compression.c Revert "btrfs: fix the file offset calculation inside btrfs_decompress_buf2page()" 2026-06-09 18:22:44 +02:00
compression.h btrfs: prevent direct reclaim during compressed readahead 2026-04-07 18:56:08 +02:00
ctree.c btrfs: switch local indicator variables to bools 2026-06-09 18:22:46 +02:00
ctree.h btrfs: introduce BTRFS_PATH_AUTO_RELEASE() helper 2026-02-03 06:38:32 +01:00
defrag.c btrfs: move large data folios out of experimental features 2026-06-08 15:53:31 +02:00
defrag.h btrfs: pass struct btrfs_inode to btrfs_defrag_file() 2025-03-18 20:35:43 +01:00
delalloc-space.c btrfs: use shifts for sectorsize and nodesize 2026-06-09 18:22:45 +02:00
delalloc-space.h btrfs: pass struct btrfs_inode to btrfs_free_reserved_data_space_noquota() 2025-05-15 14:30:52 +02:00
delayed-inode.c btrfs: unexport btrfs_qgroup_reserve_meta() 2026-04-07 18:56:05 +02:00
delayed-inode.h btrfs: embed delayed root to struct btrfs_fs_info 2026-02-03 07:56:20 +01:00
delayed-ref.c btrfs: lift assertions to beginning of insert_delayed_ref() 2026-06-08 15:53:28 +02:00
delayed-ref.h btrfs: move ref-verify under CONFIG_BTRFS_DEBUG 2025-09-22 10:54:32 +02:00
dev-replace.c btrfs: always update/create the dev stats item when adding a new device 2026-06-09 18:22:45 +02:00
dev-replace.h btrfs: trivial conversion to return bool instead of int 2025-05-15 14:30:49 +02:00
dir-item.c btrfs: remove pointless error check in btrfs_check_dir_item_collision() 2026-04-07 18:56:00 +02:00
dir-item.h btrfs: rename inode number parameter passed to btrfs_check_dir_item_collision() 2025-07-22 00:05:00 +02:00
direct-io.c btrfs: retry faulting in the pages after a zero sized short direct write 2026-06-09 18:22:46 +02:00
direct-io.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
discard.c btrfs: handle discarding fully-remapped block groups 2026-02-03 07:54:36 +01:00
discard.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
disk-io.c for-7.2-rc6-fixup-worker-tag 2026-08-06 13:29:15 -07:00
disk-io.h btrfs: remove atomic parameter from btrfs_buffer_uptodate() 2026-04-07 18:56:02 +02:00
export.c btrfs: avoid potential out-of-bounds in btrfs_encode_fh() 2025-09-26 08:48:30 +02:00
export.h
extent_io.c btrfs: trigger cow fixup via dirty_folio() 2026-07-30 19:28:36 +02:00
extent_io.h btrfs: allocate eb-attached btree pages as movable 2026-06-09 18:22:45 +02:00
extent_map.c btrfs: don't propagate EXTENT_FLAG_LOGGING to split extent maps 2026-07-14 07:04:22 +02:00
extent_map.h btrfs: headers cleanup to remove unnecessary local includes 2025-11-24 22:34:52 +01:00
extent-io-tree.c btrfs: switch local indicator variables to bools 2026-06-09 18:22:46 +02:00
extent-io-tree.h btrfs: convert several int parameters to bool 2025-09-22 10:54:32 +02:00
extent-tree.c btrfs: do not trim a device which is not writeable 2026-06-09 18:22:46 +02:00
extent-tree.h btrfs: add do_remap parameter to btrfs_discard_extent() 2026-02-03 07:54:35 +01:00
fiemap.c btrfs: make more ASSERTs verbose, part 3 2026-06-08 15:53:28 +02:00
fiemap.h
file-item.c btrfs: fallback to transaction csum tree on a commit root csum miss 2026-06-30 01:59:20 +02:00
file-item.h btrfs: rename btrfs_csum_file_blocks() to btrfs_insert_data_csums() 2026-04-07 18:55:56 +02:00
file.c btrfs: switch local indicator variables to bools 2026-06-09 18:22:46 +02:00
file.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
free-space-cache.c btrfs: reject free space cache with more entries than pages 2026-06-30 01:59:04 +02:00
free-space-cache.h btrfs: remove op field from struct btrfs_free_space_ctl 2026-06-08 15:53:29 +02:00
free-space-tree.c btrfs: switch local indicator variables to bools 2026-06-09 18:22:46 +02:00
free-space-tree.h btrfs: handle setting up relocation of block group with remap-tree 2026-02-03 07:54:35 +01:00
fs.c btrfs: disable bs > ps support if no transparent hugepage support 2026-07-31 16:55:50 +02:00
fs.h btrfs: trigger cow fixup via dirty_folio() 2026-07-30 19:28:36 +02:00
inode-item.c btrfs: merge setting ret and return ret 2026-02-03 06:38:33 +01:00
inode-item.h btrfs: remove unused parameters from btrfs_lookup_inode_extref() 2025-07-21 23:58:03 +02:00
inode.c for-7.2-rc6-fixup-worker-tag 2026-08-06 13:29:15 -07:00
ioctl.c btrfs: initialize 'args' to avoid compiler warning in btrfs_ioctl_get_csums() 2026-07-21 06:43:15 +02:00
ioctl.h tree-wide: s/struct fileattr/struct file_kattr/g 2025-07-04 16:14:39 +02:00
Kconfig btrfs: disable bs > ps support if no transparent hugepage support 2026-07-31 16:55:50 +02:00
locking.c btrfs: add definitions and constants for remap-tree 2026-02-03 07:54:02 +01:00
locking.h btrfs: fix typos in comments and strings 2025-09-23 08:49:16 +02:00
lru_cache.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
lru_cache.h
lzo.c btrfs: lzo: reject inline extents without valid headers 2026-07-31 16:54:58 +02:00
Makefile btrfs: tests: zoned: add tests cases for zoned code 2026-04-07 18:55:52 +02:00
messages.c btrfs: tag as unlikely if statements that check for fs in error state 2026-04-07 19:41:42 +02:00
messages.h btrfs: stop printing condition result in assertion failure messages 2026-04-07 18:55:58 +02:00
misc.h btrfs: introduce a common helper to calculate the size of a bio 2026-04-07 18:55:59 +02:00
ordered-data.c btrfs: fix false IO failure after falling back to buffered write 2026-06-09 18:22:46 +02:00
ordered-data.h btrfs: fix false IO failure after falling back to buffered write 2026-06-09 18:22:46 +02:00
orphan.c
orphan.h
print-tree.c btrfs: print-tree: print header owner as signed 2026-06-30 02:02:03 +02:00
print-tree.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
props.c btrfs: validate properties before setting them 2026-06-30 01:58:43 +02:00
props.h btrfs: pass struct btrfs_inode to btrfs_inode_inherit_props() 2025-03-18 20:35:44 +01:00
qgroup.c btrfs: add message format for qgroupid 2026-06-09 18:22:44 +02:00
qgroup.h btrfs: unexport btrfs_qgroup_reserve_meta() 2026-04-07 18:56:05 +02:00
raid-stripe-tree.c btrfs: report missing raid stripe tree root during lookup 2026-07-21 06:41:11 +02:00
raid-stripe-tree.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
raid56.c for-7.2-rc5-tag 2026-07-28 08:13:45 -07:00
raid56.h btrfs: raid56: introduce a new parameter to locate a sector 2025-11-25 01:46:58 +01:00
ref-verify.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
ref-verify.h btrfs: move ref-verify under CONFIG_BTRFS_DEBUG 2025-09-22 10:54:32 +02:00
reflink.c btrfs: fix deadlock cloning inline extent when using flushoncommit 2026-06-09 18:22:45 +02:00
reflink.h
relocation.c btrfs: free mapping node on duplicate reloc root insert 2026-07-14 07:05:00 +02:00
relocation.h btrfs: move locking into btrfs_get_reloc_bg_bytenr() 2026-06-09 18:22:47 +02:00
root-tree.c btrfs: switch local indicator variables to bools 2026-06-09 18:22:46 +02:00
root-tree.h
scrub.c btrfs: allocate eb-attached btree pages as movable 2026-06-09 18:22:45 +02:00
scrub.h btrfs: convert several int parameters to bool 2025-09-22 10:54:32 +02:00
send.c btrfs: switch local indicator variables to bools 2026-06-09 18:22:46 +02:00
send.h btrfs: pass btrfs_root pointers to send ioctl parameters 2025-03-18 20:35:49 +01:00
space-info.c btrfs: zoned: fix deadlock waiting for ticket during data relocation 2026-06-09 18:22:44 +02:00
space-info.h btrfs: zoned: fix deadlock waiting for ticket during data relocation 2026-06-09 18:22:44 +02:00
subpage.c btrfs: trigger cow fixup via dirty_folio() 2026-07-30 19:28:36 +02:00
subpage.h btrfs: trigger cow fixup via dirty_folio() 2026-07-30 19:28:36 +02:00
super.c for-7.2-rc5-tag 2026-07-28 08:13:45 -07:00
super.h btrfs: constify arguments of some functions 2026-04-07 18:55:58 +02:00
sysfs.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sysfs.h btrfs: remove fs_info argument from btrfs_sysfs_add_space_info_type() 2025-11-24 22:02:30 +01:00
transaction.c btrfs: switch local indicator variables to bools 2026-06-09 18:22:46 +02:00
transaction.h btrfs: simplify how first hit is passed to __btrfs_abort_transaction() 2026-06-09 11:49:25 +01:00
tree-checker.c btrfs: tree-checker: validate INODE_REF's namelen 2026-06-30 02:02:02 +02:00
tree-checker.h btrfs: add definitions and constants for remap-tree 2026-02-03 07:54:02 +01:00
tree-log.c btrfs: tracepoints: add trace event for btrfs_sync_log() 2026-06-09 11:49:25 +01:00
tree-log.h btrfs: use a named enum for the log mode in inode log functions 2026-06-08 15:53:34 +02:00
tree-mod-log.c btrfs: remove redundant extent_buffer_uptodate() checks after read_tree_block() 2026-04-07 18:55:55 +02:00
tree-mod-log.h
ulist.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
ulist.h
uuid-tree.c btrfs: prefer IS_ERR_OR_NULL() over manual NULL check 2026-04-07 18:56:02 +02:00
uuid-tree.h btrfs: fix transaction abort on set received ioctl due to item overflow 2026-03-03 17:03:59 +01:00
verity.c btrfs: remove 32bit compat code for VFS inode number 2026-06-08 15:53:30 +02:00
verity.h
volumes.c btrfs: print a message when a missing device re-appears 2026-06-09 18:22:46 +02:00
volumes.h btrfs: remove the dev stats item for replace target device 2026-06-09 18:22:44 +02:00
xattr.c btrfs: remaining BTRFS_PATH_AUTO_FREE conversions 2025-11-25 01:53:33 +01:00
xattr.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
zlib.c btrfs: prevent direct reclaim during compressed readahead 2026-04-07 18:56:08 +02:00
zoned.c btrfs: zoned: skip fully truncated ordered extents at zone finish 2026-07-21 06:43:46 +02:00
zoned.h btrfs: zoned: factor out the zone loading part into a testable function 2026-02-03 07:59:06 +01:00
zstd.c btrfs: prevent direct reclaim during compressed readahead 2026-04-07 18:56:08 +02:00