]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
btrfs: protect sb_write_pointer() with invalidate lock
authorKangNing Liao <lkangn.kernel@gmail.com>
Thu, 21 May 2026 12:29:45 +0000 (20:29 +0800)
committerFilipe Manana <fdmanana@suse.com>
Tue, 9 Jun 2026 10:49:25 +0000 (11:49 +0100)
commit123b9a545f4d0348e81f558a032bf2a93ee5722f
tree249fb3d03043b6a01b3205d6fd2794572f83148d
parentd8576024fa1bee0e72e44ca8b5a6c95372717a99
btrfs: protect sb_write_pointer() with invalidate lock

sb_write_pointer() reads the super block from the block device page cache
using read_cache_page_gfp(). This has the same race with BLKBSZSET as the
one fixed by commit 3f29d661e568 ("btrfs: sync read disk super and set
block size").

Take the mapping invalidate lock around read_cache_page_gfp() to
serialize the read against block size changes.

Signed-off-by: KangNing Liao <lkangn.kernel@gmail.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/zoned.c