Skip to content

Commit f4013ca

Browse files
committed
Merge branch 'for-5.9/dax' into libnvdimm-for-next
This contains a handful of dax changes for v5.9. Of the three commits, one is a print verbosity change, and two are independent fixes that fell out of the PKS work [1]. [1]: https://lore.kernel.org/linux-nvdimm/[email protected]
2 parents 4877846 + eedfd73 commit f4013ca

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

drivers/dax/super.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,34 +80,34 @@ bool __generic_fsdax_supported(struct dax_device *dax_dev,
8080
int err, id;
8181

8282
if (blocksize != PAGE_SIZE) {
83-
pr_debug("%s: error: unsupported blocksize for dax\n",
83+
pr_info("%s: error: unsupported blocksize for dax\n",
8484
bdevname(bdev, buf));
8585
return false;
8686
}
8787

8888
err = bdev_dax_pgoff(bdev, start, PAGE_SIZE, &pgoff);
8989
if (err) {
90-
pr_debug("%s: error: unaligned partition for dax\n",
90+
pr_info("%s: error: unaligned partition for dax\n",
9191
bdevname(bdev, buf));
9292
return false;
9393
}
9494

9595
last_page = PFN_DOWN((start + sectors - 1) * 512) * PAGE_SIZE / 512;
9696
err = bdev_dax_pgoff(bdev, last_page, PAGE_SIZE, &pgoff_end);
9797
if (err) {
98-
pr_debug("%s: error: unaligned partition for dax\n",
98+
pr_info("%s: error: unaligned partition for dax\n",
9999
bdevname(bdev, buf));
100100
return false;
101101
}
102102

103103
id = dax_read_lock();
104104
len = dax_direct_access(dax_dev, pgoff, 1, &kaddr, &pfn);
105105
len2 = dax_direct_access(dax_dev, pgoff_end, 1, &end_kaddr, &end_pfn);
106-
dax_read_unlock(id);
107106

108107
if (len < 1 || len2 < 1) {
109-
pr_debug("%s: error: dax access failed (%ld)\n",
108+
pr_info("%s: error: dax access failed (%ld)\n",
110109
bdevname(bdev, buf), len < 1 ? len : len2);
110+
dax_read_unlock(id);
111111
return false;
112112
}
113113

@@ -137,9 +137,10 @@ bool __generic_fsdax_supported(struct dax_device *dax_dev,
137137
put_dev_pagemap(end_pgmap);
138138

139139
}
140+
dax_read_unlock(id);
140141

141142
if (!dax_enabled) {
142-
pr_debug("%s: error: dax support not enabled\n",
143+
pr_info("%s: error: dax support not enabled\n",
143144
bdevname(bdev, buf));
144145
return false;
145146
}

fs/dax.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -680,21 +680,20 @@ int dax_invalidate_mapping_entry_sync(struct address_space *mapping,
680680
return __dax_invalidate_entry(mapping, index, false);
681681
}
682682

683-
static int copy_user_dax(struct block_device *bdev, struct dax_device *dax_dev,
684-
sector_t sector, size_t size, struct page *to,
685-
unsigned long vaddr)
683+
static int copy_cow_page_dax(struct block_device *bdev, struct dax_device *dax_dev,
684+
sector_t sector, struct page *to, unsigned long vaddr)
686685
{
687686
void *vto, *kaddr;
688687
pgoff_t pgoff;
689688
long rc;
690689
int id;
691690

692-
rc = bdev_dax_pgoff(bdev, sector, size, &pgoff);
691+
rc = bdev_dax_pgoff(bdev, sector, PAGE_SIZE, &pgoff);
693692
if (rc)
694693
return rc;
695694

696695
id = dax_read_lock();
697-
rc = dax_direct_access(dax_dev, pgoff, PHYS_PFN(size), &kaddr, NULL);
696+
rc = dax_direct_access(dax_dev, pgoff, PHYS_PFN(PAGE_SIZE), &kaddr, NULL);
698697
if (rc < 0) {
699698
dax_read_unlock(id);
700699
return rc;
@@ -1305,8 +1304,8 @@ static vm_fault_t dax_iomap_pte_fault(struct vm_fault *vmf, pfn_t *pfnp,
13051304
clear_user_highpage(vmf->cow_page, vaddr);
13061305
break;
13071306
case IOMAP_MAPPED:
1308-
error = copy_user_dax(iomap.bdev, iomap.dax_dev,
1309-
sector, PAGE_SIZE, vmf->cow_page, vaddr);
1307+
error = copy_cow_page_dax(iomap.bdev, iomap.dax_dev,
1308+
sector, vmf->cow_page, vaddr);
13101309
break;
13111310
default:
13121311
WARN_ON_ONCE(1);

0 commit comments

Comments
 (0)