On Wed, Jan 17, 2024 at 05:32:54PM +0100, Jan Kara wrote: > > @@ -68,6 +69,7 @@ struct buffer_head { > > size_t b_size; /* size of mapping */ > > char *b_data; /* pointer to data within the page */ > > > > + struct file *f_b_bdev; > > struct block_device *b_bdev; > > bh_end_io_t *b_end_io; /* I/O completion */ > > void *b_private; /* reserved for b_end_io */ > > It is kind of annoying to have bdev duplicated in every buffer_head. > Perhaps we can get rid of b_bdev? Yes, that's ultimately the goal similar for struct super_block, I think and struct iomap. But please see: https://lore.kernel.org/r/20240118-gemustert-aalen-ee71d0c69826@brauner as I'm still not yet clear on some details there.