btrfs: accessors: compile-time fast path for u8
authorDavid Sterba <dsterba@suse.com>
Tue, 1 Jul 2025 17:23:51 +0000 (19:23 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 21 Jul 2025 22:09:21 +0000 (00:09 +0200)
commit58383c6866a76acb719b1f22caaba64fa4dd3f6e
treea1beb8bbde94f7df24043531328e21c761d9af16
parentd5a87dbd958398c1926dd35a328ccf89a410cbd2
btrfs: accessors: compile-time fast path for u8

Reading/writing 1 byte (u8) is a special case compared to the others as
it's always contained in the folio we find, so the split memcpy will
never be needed. Turn it to a compile-time check that the memcpy part
can be optimized out.

The stack usage is reduced:

  btrfs_set_8                                         -16 (32 -> 16)
  btrfs_get_8                                         -16 (24 -> 8)

Code size reduction:

     text    data     bss     dec     hex filename
  1454951  115665   16088 1586704  183610 pre/btrfs.ko
  1454691  115665   16088 1586444  18350c post/btrfs.ko

  DELTA: -260

Reviewed-by: Boris Burkov <boris@bur.io>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/accessors.c