xfs: perform dax_device lookup at mount
The ->iomap_begin() operation is a hot path, so cache the fs_dax_get_by_host() result at mount time to avoid the incurring the hash lookup overhead on a per-i/o basis. Reported-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
@@ -80,6 +80,19 @@ xfs_find_bdev_for_inode(
|
||||
return mp->m_ddev_targp->bt_bdev;
|
||||
}
|
||||
|
||||
struct dax_device *
|
||||
xfs_find_daxdev_for_inode(
|
||||
struct inode *inode)
|
||||
{
|
||||
struct xfs_inode *ip = XFS_I(inode);
|
||||
struct xfs_mount *mp = ip->i_mount;
|
||||
|
||||
if (XFS_IS_REALTIME_INODE(ip))
|
||||
return mp->m_rtdev_targp->bt_daxdev;
|
||||
else
|
||||
return mp->m_ddev_targp->bt_daxdev;
|
||||
}
|
||||
|
||||
/*
|
||||
* We're now finished for good with this page. Update the page state via the
|
||||
* associated buffer_heads, paying attention to the start and end offsets that
|
||||
|
Reference in New Issue
Block a user