xfs: use iomap_bmap
authorChristoph Hellwig <hch@lst.de>
Fri, 1 Jun 2018 16:03:09 +0000 (09:03 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Sat, 2 Jun 2018 01:37:33 +0000 (18:37 -0700)
Switch to the iomap based bmap implementation to get rid of one of the
last users of xfs_get_blocks.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/xfs_aops.c

index 80de476cecf80296dba2da8a538b60f18b9c00ad..56e4055729090f3d62f0d4ec878754e43be8760c 100644 (file)
@@ -1378,10 +1378,9 @@ xfs_vm_bmap(
        struct address_space    *mapping,
        sector_t                block)
 {
-       struct inode            *inode = (struct inode *)mapping->host;
-       struct xfs_inode        *ip = XFS_I(inode);
+       struct xfs_inode        *ip = XFS_I(mapping->host);
 
-       trace_xfs_vm_bmap(XFS_I(inode));
+       trace_xfs_vm_bmap(ip);
 
        /*
         * The swap code (ab-)uses ->bmap to get a block mapping and then
@@ -1394,9 +1393,7 @@ xfs_vm_bmap(
         */
        if (xfs_is_reflink_inode(ip) || XFS_IS_REALTIME_INODE(ip))
                return 0;
-
-       filemap_write_and_wait(mapping);
-       return generic_block_bmap(mapping, block, xfs_get_blocks);
+       return iomap_bmap(mapping, block, &xfs_iomap_ops);
 }
 
 STATIC int