Re: [PATCH] fs/buffer.c: Optimize grow_buffer function.

From: Al Viro
Date: Sat Jul 21 2018 - 14:21:23 EST


On Sun, Jul 22, 2018 at 01:30:17AM +0800, Sean Fu wrote:
> Use PAGE_SHIFT and i_blkbits of bd_inode directly to avoid ugly sizebits
> calculation.
> Remove ugly sizebits calculation.
> Remove unnecessary sizebits parameter of grow_dev_page.
>
> Reduces code size:
>
> Before:
>
> sean@linux-zmni:~/sda5/source/linus_repo/linux> size fs/buffer.o
> text data bss dec hex filename
> 34037 1510 16 35563 8aeb fs/buffer.o
>
> After:
>
> sean@linux-zmni:~/sda5/source/linus_repo/linux> size fs/buffer.o
> text data bss dec hex filename
> 34021 1510 16 35547 8adb fs/buffer.o

First of all, 16 bytes is pretty much noise. What's more, the "remove ugly
sizebits calculation" part really needs an explanation of the reasons why
it's safe. You assume that size == 1<<bdev->bd_inode->i_blkbits; where's
the proof that it always holds?