Comments are good but unfortunately they can't effectively enforce certain invariants, to that effect let's break the build in case io_inline_bio is, for whatever reason, not the last member of iomap_ioend. Signed-off-by: Nikolay Borisov <nborisov@xxxxxxxx> --- fs/iomap/buffered-io.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c index 9023717c5188..f0421e139697 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -1225,6 +1225,10 @@ iomap_alloc_ioend(struct inode *inode, struct iomap_writepage_ctx *wpc, bio->bi_write_hint = inode->i_write_hint; wbc_init_bio(wbc, bio); + + BUILD_BUG_ON(offsetof(struct iomap_ioend, io_inline_bio) + sizeof(struct bio) + != sizeof(struct iomap_ioend)); + ioend = container_of(bio, struct iomap_ioend, io_inline_bio); INIT_LIST_HEAD(&ioend->io_list); ioend->io_type = wpc->iomap.type; -- 2.25.1