linux/fs/btrfs
Linus Torvalds 1781f0b3d7 vfs-7.3-rc1.super
Please consider pulling these changes from the signed vfs-7.3-rc1.super tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCan7RJQAKCRCRxhvAZXjc
 oroBAP40BufiChnC6I9Ev79QWF+Pfri1r/3AR4xXRG4HkXQaYQD/YE+Ria3+Bt35
 +tWU66cYlQ/+9LfU8DJ3KXm7jPUBiQA=
 =hXLH
 -----END PGP SIGNATURE-----

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

Pull vfs superblock updates from Christian Brauner:

 - Make it possible to share a block device between multiple
   filesystems.

   erofs can mount read-only blob devices shared between many
   superblocks, but because we only tracked a single superblock a
   freeze, thaw, removal or sync on such a device was never propagated
   to all the superblocks using it, and there was no way to find them.

   Add an efficient table to lookup all superblocks using a given block
   device.

 - A bunch of pre-existing fixes fell out of this work:

   A block-device freeze racing a btrfs device change could leave the
   whole filesystem stuck frozen. A bdev_freeze() issued by "dmsetup
   suspend" or an LVM snapshot resolves that holder to freeze the
   filesystem. and bdev_thaw() resolves it again to thaw. A freeze
   landing while btrfs is adding, removing or replacing a device freezes
   the filesystem. The membership change then drops that link. So the
   matching thaw could no longer find the superblock.

   Forbid freezing a device for the duration of a membership change,
   modelled on deny_write_access()/allow_write_access().

* tag 'vfs-7.3-rc1.super' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (24 commits)
  super: fix dying superblock warning messages
  block: reject block device inodes with i_rdev == 0 in lookup_bdev()
  selftests/filesystems: add ustat() coverage
  fs: look up the superblock via the device table in user_get_super()
  super: make fs_holder_ops private
  f2fs: open via dedicated fs bdev helpers
  erofs: open via dedicated fs bdev helpers
  fs: tolerate per-superblock freeze errors on shared devices
  fs: look up superblocks via the device table in fs_holder_ops
  ext4: open via dedicated fs bdev helpers
  btrfs: open via dedicated fs bdev helpers
  xfs: port to fs_bdev_file_open_by_path()
  fs: add dedicated block device open helpers for filesystems
  fs: maintain a global device-to-superblock table
  ocfs2: don't reset s_dev on dismount
  ext4: use anonymous devices for KUnit test superblocks
  fs, block: move blk_mode_t and fop_flags_t into <linux/types.h>
  super: take lock after last reference count
  super: convert s_count to refcount_t s_passive
  btrfs: deny freezing devices undergoing a replace
  ...
2026-08-17 13:57:04 -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
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
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: deny freezing devices undergoing a replace 2026-06-29 10:31:49 +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: convert iomap ops to ->iomap_next() 2026-07-31 12:28:49 +02:00
direct-io.h
discard.c btrfs: handle discarding fully-remapped block groups 2026-02-03 07:54:36 +01:00
discard.h
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
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 vfs-7.3-rc1.misc 2026-08-17 12:56:12 -07:00
ioctl.c vfs-7.3-rc1.super 2026-08-17 13:57:04 -07: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
props.c btrfs: validate properties before setting them 2026-06-30 01:58:43 +02:00
props.h
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
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
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 vfs-7.3-rc1.super 2026-08-17 13:57:04 -07:00
volumes.h btrfs: deny freezing devices undergoing a replace 2026-06-29 10:31:49 +02:00
xattr.c btrfs: remaining BTRFS_PATH_AUTO_FREE conversions 2025-11-25 01:53:33 +01:00
xattr.h
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