block_device: add a pointer to struct address_space (page cache of bdev)
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 11 Apr 2024 14:53:36 +0000 (15:53 +0100)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 3 May 2024 06:36:50 +0000 (02:36 -0400)
points to ->i_data of coallocated inode.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Link: https://lore.kernel.org/r/20240411145346.2516848-1-viro@zeniv.linux.org.uk
Signed-off-by: Christian Brauner <brauner@kernel.org>
block/bdev.c
include/linux/blk_types.h

index 28e6f0423857dc580f25432613cf49c503d08cb1..8e19101cbbb09ffda99d14371e5117180c5472ba 100644 (file)
@@ -419,6 +419,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;
index cb1526ec44b5f66572337fff1ba61dcc704a1d19..6438c75cbb358ff63735cda1e23214ef0a6a5c4f 100644 (file)
@@ -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 */