From 86523d8d2f3ad16e865a0a47e725d6b2cf36fc78 Mon Sep 17 00:00:00 2001 From: David Sterba Date: Fri, 9 Jan 2026 18:17:41 +0100 Subject: [PATCH] btrfs: reorder members in btrfs_delayed_root for better packing There are two unnecessary 4B holes in btrfs_delayed_root; struct btrfs_delayed_root { spinlock_t lock; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head node_list; /* 8 16 */ struct list_head prepare_list; /* 24 16 */ atomic_t items; /* 40 4 */ atomic_t items_seq; /* 44 4 */ int nodes; /* 48 4 */ /* XXX 4 bytes hole, try to pack */ wait_queue_head_t wait; /* 56 24 */ /* size: 80, cachelines: 2, members: 7 */ /* sum members: 72, holes: 2, sum holes: 8 */ /* last cacheline: 16 bytes */ }; Reordering 'nodes' after 'lock' reduces size by 8B, to 72 on release config. Reviewed-by: Boris Burkov Signed-off-by: David Sterba --- fs/btrfs/fs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/btrfs/fs.h b/fs/btrfs/fs.h index d315530a29282..d3762fbe7267a 100644 --- a/fs/btrfs/fs.h +++ b/fs/btrfs/fs.h @@ -465,6 +465,7 @@ struct btrfs_commit_stats { struct btrfs_delayed_root { spinlock_t lock; + int nodes; /* for delayed nodes */ struct list_head node_list; /* * Used for delayed nodes which is waiting to be dealt with by the @@ -474,7 +475,6 @@ struct btrfs_delayed_root { struct list_head prepare_list; atomic_t items; /* for delayed items */ atomic_t items_seq; /* for delayed items */ - int nodes; /* for delayed nodes */ wait_queue_head_t wait; }; -- 2.47.3