diff options
author | Christoph Hellwig <hch@lst.de> | 2016-09-18 21:24:49 -0400 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2016-09-18 21:24:49 -0400 |
commit | b0d5e82fcf8249b5aca52d235c1cfabd68b253e8 (patch) | |
tree | 2339be43d048f78c3aac15fbf1b3bd823f3d73b6 | |
parent | 1aaba0958ed371bd121751d74d98f2a76395edad (diff) |
dax: don't pass buffer_head to copy_user_dax
This way we can use this helper for the iomap based DAX implementation
as well.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
-rw-r--r-- | fs/dax.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -580,14 +580,13 @@ static int dax_load_hole(struct address_space *mapping, void *entry, | |||
580 | return VM_FAULT_LOCKED; | 580 | return VM_FAULT_LOCKED; |
581 | } | 581 | } |
582 | 582 | ||
583 | static int copy_user_bh(struct page *to, struct inode *inode, | 583 | static int copy_user_dax(struct block_device *bdev, sector_t sector, size_t size, |
584 | struct buffer_head *bh, unsigned long vaddr) | 584 | struct page *to, unsigned long vaddr) |
585 | { | 585 | { |
586 | struct blk_dax_ctl dax = { | 586 | struct blk_dax_ctl dax = { |
587 | .sector = to_sector(bh, inode), | 587 | .sector = sector, |
588 | .size = bh->b_size, | 588 | .size = size, |
589 | }; | 589 | }; |
590 | struct block_device *bdev = bh->b_bdev; | ||
591 | void *vto; | 590 | void *vto; |
592 | 591 | ||
593 | if (dax_map_atomic(bdev, &dax) < 0) | 592 | if (dax_map_atomic(bdev, &dax) < 0) |
@@ -867,7 +866,8 @@ int dax_fault(struct vm_area_struct *vma, struct vm_fault *vmf, | |||
867 | if (vmf->cow_page) { | 866 | if (vmf->cow_page) { |
868 | struct page *new_page = vmf->cow_page; | 867 | struct page *new_page = vmf->cow_page; |
869 | if (buffer_written(&bh)) | 868 | if (buffer_written(&bh)) |
870 | error = copy_user_bh(new_page, inode, &bh, vaddr); | 869 | error = copy_user_dax(bh.b_bdev, to_sector(&bh, inode), |
870 | bh.b_size, new_page, vaddr); | ||
871 | else | 871 | else |
872 | clear_user_highpage(new_page, vaddr); | 872 | clear_user_highpage(new_page, vaddr); |
873 | if (error) | 873 | if (error) |