From: Christian Brauner Date: Thu, 4 Jun 2026 08:28:17 +0000 (+0200) Subject: Merge patch series "Remove b_end_io from struct buffer_head" X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=f0d857543e4d37464759c338f46ad6c85a618a2e;p=thirdparty%2Fkernel%2Flinux.git Merge patch series "Remove b_end_io from struct buffer_head" Matthew Wilcox (Oracle) says: There are four benefits to this patchset. First, it removes an indirect function call from the completion path. Instead of setting bio->bi_end_io to end_bio_bh_io_sync() which then calls bh->b_end_io(), we set bio->bi_end_io to the appropriate completion handler, replacing two indirect function calls with one. Second, there is a slight security advantage to this. It is one fewer function pointer in the middle of a writable data structure that can be corrupted. Third, it shrinks struct buffer_head from 104 bytes to 96 bytes, allowing for appropriximately 7% reduction in the amount of memory used by buffer_heads (or, alternatively, allows 7% more buffer_heads to be cached in the same amount of memory). Fourth, it removes some atomic operations as the buffer refcount is no longer incremented before calling the end_io handler. I've run ext4 through its paces, and everything seems OK. I've only compiled ocfs2/gfs2/nilfs/md-bitmap. Hopefully the maintainers can give this series a try. I'm sending the entire series to linux-fsdevel and cc'ing the fs-specific mailing lists for the fs-specific patches. * patches from https://patch.msgid.link/20260528173150.1093780-1-willy@infradead.org: (34 commits) buffer: Remove end_buffer_write_sync() buffer: Change calling convention for end_buffer_read_sync() buffer: Remove b_end_io buffer: Remove submit_bh() md-bitmap: Convert read_file_page and write_file_page to bh_submit() nilfs2: Convert nilfs_mdt_submit_block to bh_submit() nilfs2: Convert nilfs_gccache_submit_read_data to bh_submit() nilfs2: Convert nilfs_btnode_submit_block to bh_submit() buffer: Remove mark_buffer_async_write() gfs2: Convert gfs2_aspace_write_folio to bh_submit() gfs2: Remove use of b_end_io in gfs2_meta_read_endio() gfs2: Convert gfs2_dir_readahead to bh_submit() gfs2: Convert gfs2_metapath_ra to bh_submit() ocfs2: Convert ocfs2_write_super_or_backup to bh_submit() ocfs2: Convert ocfs2_read_blocks to bh_submit() ocfs2: Convert ocfs2_read_block to bh_submit() ocfs2: Convert ocfs2_write_block to bh_submit() jbd2: Convert jbd2_write_superblock() to bh_submit() jbd2: Convert journal commit to bh_submit() ext4: Convert ext4_commit_super() to bh_submit() ... Link: https://patch.msgid.link/20260528173150.1093780-1-willy@infradead.org Signed-off-by: Christian Brauner --- f0d857543e4d37464759c338f46ad6c85a618a2e