grow_dev_folio(): we only want ->bd_inode->i_mapping there
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 11 Apr 2024 14:53:38 +0000 (15:53 +0100)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 3 May 2024 06:36:51 +0000 (02:36 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Link: https://lore.kernel.org/r/20240411145346.2516848-3-viro@zeniv.linux.org.uk
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/buffer.c

index d5a0932ae68d40a1bbf3fdd46434571e648fcd0a..78a4e95ba2f20cf2090c518db6e5170e70f5a0b8 100644 (file)
@@ -1034,12 +1034,12 @@ static sector_t folio_init_buffers(struct folio *folio,
 static bool grow_dev_folio(struct block_device *bdev, sector_t block,
                pgoff_t index, unsigned size, gfp_t gfp)
 {
-       struct inode *inode = bdev->bd_inode;
+       struct address_space *mapping = bdev->bd_mapping;
        struct folio *folio;
        struct buffer_head *bh;
        sector_t end_block = 0;
 
-       folio = __filemap_get_folio(inode->i_mapping, index,
+       folio = __filemap_get_folio(mapping, index,
                        FGP_LOCK | FGP_ACCESSED | FGP_CREAT, gfp);
        if (IS_ERR(folio))
                return false;
@@ -1073,10 +1073,10 @@ static bool grow_dev_folio(struct block_device *bdev, sector_t block,
         * lock to be atomic wrt __find_get_block(), which does not
         * run under the folio lock.
         */
-       spin_lock(&inode->i_mapping->i_private_lock);
+       spin_lock(&mapping->i_private_lock);
        link_dev_buffers(folio, bh);
        end_block = folio_init_buffers(folio, bdev, size);
-       spin_unlock(&inode->i_mapping->i_private_lock);
+       spin_unlock(&mapping->i_private_lock);
 unlock:
        folio_unlock(folio);
        folio_put(folio);