]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
btrfs: set AS_KERNEL_FILE on the btree_inode
authorBoris Burkov <boris@bur.io>
Thu, 21 Aug 2025 21:55:37 +0000 (14:55 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 12 Sep 2025 00:25:20 +0000 (17:25 -0700)
extent_buffers are global and shared so their pages should not belong to
any particular cgroup (currently whichever cgroups happens to allocate the
extent_buffer).

Btrfs tree operations should not arbitrarily block on cgroup reclaim or
have the shared extent_buffer pages on a cgroup's reclaim lists.

Link: https://lkml.kernel.org/r/2ee99832619a3fdfe80bf4dc9760278662d2d746.1755812945.git.boris@bur.io
Signed-off-by: Boris Burkov <boris@bur.io>
Acked-by: Shakeel Butt <shakeel.butt@linux.dev>
Tested-by: syzbot@syzkaller.appspotmail.com
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Qu Wenruo <wqu@suse.com>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/btrfs/disk-io.c

index 70fc4e7cc5a0e6cd8885df91c3959455322eb6d0..7fab5057cf8e97bb0314afde053f48d3a8264650 100644 (file)
@@ -1930,6 +1930,7 @@ static int btrfs_init_btree_inode(struct super_block *sb)
        BTRFS_I(inode)->root = btrfs_grab_root(fs_info->tree_root);
        set_bit(BTRFS_INODE_DUMMY, &BTRFS_I(inode)->runtime_flags);
        __insert_inode_hash(inode, hash);
+       set_bit(AS_KERNEL_FILE, &inode->i_mapping->flags);
        fs_info->btree_inode = inode;
 
        return 0;