LinuxカーネルAPIには__breadメソッドがあります。
__bread(struct block_device *bdev, sector_t block, unsigned size)
これは、データフィールドにサイズに相当するデータが含まれるbuffer_headポインターを返します。ただし、 sizeバイトを超えて読み取ると、PAGE_SIZEバイト数までの有効なデータが得られることに気付きました。これにより、* __ bread *によって返されるbuffer_headには、渡されるsize引数が小さくても、常にPAGE_SIZEバイトに相当する有効なデータが含まれていると推測できるかどうか疑問に思いました。
あるいは、それは単なる偶然だったのかもしれません。