Message ID | 20240411145346.2516848-1-viro@zeniv.linux.org.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [01/11] block_device: add a pointer to struct address_space (page cache of bdev) | expand |
On Thu, Apr 11, 2024 at 03:53:36PM +0100, Al Viro wrote: > points to ->i_data of coallocated inode. > > Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> > --- I've picked all of this into vfs.super btw. I still want to go through your reply but as you know I'm a bit time-constrained for a bit more. :/
diff --git a/block/bdev.c b/block/bdev.c index dd26d37356aa..1c3462fba6ce 100644 --- a/block/bdev.c +++ b/block/bdev.c @@ -413,6 +413,7 @@ struct block_device *bdev_alloc(struct gendisk *disk, u8 partno) mutex_init(&bdev->bd_holder_lock); bdev->bd_partno = partno; bdev->bd_inode = inode; + bdev->bd_mapping = &inode->i_data; bdev->bd_queue = disk->queue; if (partno) bdev->bd_has_submit_bio = disk->part0->bd_has_submit_bio; diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index cb1526ec44b5..6438c75cbb35 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h @@ -51,6 +51,7 @@ struct block_device { bool bd_has_submit_bio; dev_t bd_dev; struct inode *bd_inode; /* will die */ + struct address_space *bd_mapping; /* page cache */ atomic_t bd_openers; spinlock_t bd_size_lock; /* for bd_inode->i_size updates */
points to ->i_data of coallocated inode. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> --- block/bdev.c | 1 + include/linux/blk_types.h | 1 + 2 files changed, 2 insertions(+)