mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
ext2, ext4, xfs: retrieve dax_device for iomap operations
In preparation for converting fs/dax.c to use dax_direct_access() instead of bdev_direct_access(), add the plumbing to retrieve the dax_device associated with a given block_device. Signed-off-by: Dan Williams <[email protected]>
This commit is contained in:
parent
817bf40265
commit
fa5d932c32
4 changed files with 27 additions and 2 deletions
|
|
@ -976,6 +976,7 @@ xfs_file_iomap_begin(
|
|||
int nimaps = 1, error = 0;
|
||||
bool shared = false, trimmed = false;
|
||||
unsigned lockmode;
|
||||
struct block_device *bdev;
|
||||
|
||||
if (XFS_FORCED_SHUTDOWN(mp))
|
||||
return -EIO;
|
||||
|
|
@ -1063,6 +1064,14 @@ xfs_file_iomap_begin(
|
|||
}
|
||||
|
||||
xfs_bmbt_to_iomap(ip, iomap, &imap);
|
||||
|
||||
/* optionally associate a dax device with the iomap bdev */
|
||||
bdev = iomap->bdev;
|
||||
if (blk_queue_dax(bdev->bd_queue))
|
||||
iomap->dax_dev = dax_get_by_host(bdev->bd_disk->disk_name);
|
||||
else
|
||||
iomap->dax_dev = NULL;
|
||||
|
||||
if (shared)
|
||||
iomap->flags |= IOMAP_F_SHARED;
|
||||
return 0;
|
||||
|
|
@ -1140,6 +1149,7 @@ xfs_file_iomap_end(
|
|||
unsigned flags,
|
||||
struct iomap *iomap)
|
||||
{
|
||||
put_dax(iomap->dax_dev);
|
||||
if ((flags & IOMAP_WRITE) && iomap->type == IOMAP_DELALLOC)
|
||||
return xfs_file_iomap_end_delalloc(XFS_I(inode), offset,
|
||||
length, written, iomap);
|
||||
|
|
|
|||
Loading…
Reference in a new issue