| /linux/drivers/dax/ |
| H A D | super.c | 62 int dax_add_host(struct dax_device *dax_dev, struct gendisk *disk) in dax_add_host() argument 64 return xa_insert(&dax_hosts, (unsigned long)disk, dax_dev, GFP_KERNEL); in dax_add_host() 84 struct dax_device *dax_dev; in fs_dax_get_by_bdev() local 99 dax_dev = xa_load(&dax_hosts, (unsigned long)bdev->bd_disk); in fs_dax_get_by_bdev() 100 if (!dax_dev || !dax_alive(dax_dev) || !igrab(&dax_dev->inode)) in fs_dax_get_by_bdev() 101 dax_dev = NULL; in fs_dax_get_by_bdev() 103 if (!cmpxchg(&dax_dev->holder_data, NULL, holder)) in fs_dax_get_by_bdev() 104 dax_dev->holder_ops = ops; in fs_dax_get_by_bdev() 106 dax_dev = NULL; in fs_dax_get_by_bdev() 110 return dax_dev; in fs_dax_get_by_bdev() [all …]
|
| H A D | dax-private.h | 15 struct inode *dax_inode(struct dax_device *dax_dev); 85 struct dax_device *dax_dev; member 103 void run_dax(struct dax_device *dax_dev);
|
| H A D | device.c | 23 if (!dax_alive(dev_dax->dax_dev)) in __check_vma() 358 struct dax_device *dax_dev = inode_dax(inode); in dax_open() local 359 struct inode *__dax_inode = dax_inode(dax_dev); in dax_open() 360 struct dev_dax *dev_dax = dax_get_private(dax_dev); in dax_open() 405 struct dax_device *dax_dev = dev_dax->dax_dev; in dev_dax_probe() local 462 inode = dax_inode(dax_dev); in dev_dax_probe() 475 run_dax(dax_dev); in dev_dax_probe()
|
| H A D | bus.c | 425 struct dax_device *dax_dev = dev_dax->dax_dev; in kill_dev_dax() local 426 struct inode *inode = dax_inode(dax_dev); in kill_dev_dax() 428 kill_dax(dax_dev); in kill_dev_dax() 1407 struct dax_device *dax_dev = dev_dax->dax_dev; in dev_dax_release() local 1409 put_dax(dax_dev); in dev_dax_release() 1424 struct dax_device *dax_dev; in __devm_create_dev_dax() local 1479 dax_dev = alloc_dax(dev_dax, NULL); in __devm_create_dev_dax() 1480 if (IS_ERR(dax_dev)) { in __devm_create_dev_dax() 1481 rc = PTR_ERR(dax_dev); in __devm_create_dev_dax() 1484 set_dax_synchronous(dax_dev); in __devm_create_dev_dax() [all …]
|
| /linux/include/linux/ |
| H A D | dax.h | 36 size_t (*recovery_write)(struct dax_device *dax_dev, pgoff_t pgoff, 48 int (*notify_failure)(struct dax_device *dax_dev, u64 offset, 54 void *dax_holder(struct dax_device *dax_dev); 55 void put_dax(struct dax_device *dax_dev); 56 void kill_dax(struct dax_device *dax_dev); 57 void dax_write_cache(struct dax_device *dax_dev, bool wc); 58 bool dax_write_cache_enabled(struct dax_device *dax_dev); 59 bool dax_synchronous(struct dax_device *dax_dev); 60 void set_dax_nocache(struct dax_device *dax_dev); 61 void set_dax_nomc(struct dax_device *dax_dev); [all …]
|
| H A D | iomap.h | 117 struct dax_device *dax_dev; /* dax_dev for dax operations */ member
|
| /linux/drivers/nvdimm/ |
| H A D | dax_devs.c | 91 struct device *dax_dev; in nd_dax_probe() local 109 dax_dev = nd_dax_devinit(nd_dax, ndns); in nd_dax_probe() 110 if (!dax_dev) in nd_dax_probe() 117 dev_dbg(dev, "dax: %s\n", rc == 0 ? dev_name(dax_dev) : "<none>"); in nd_dax_probe() 119 nd_detach_ndns(dax_dev, &nd_pfn->ndns); in nd_dax_probe() 120 put_device(dax_dev); in nd_dax_probe() 122 nd_device_register(dax_dev); in nd_dax_probe()
|
| /linux/drivers/s390/block/ |
| H A D | dcssblk.c | 32 static long dcssblk_dax_direct_access(struct dax_device *dax_dev, pgoff_t pgoff, 46 static int dcssblk_dax_zero_page_range(struct dax_device *dax_dev, in dcssblk_dax_zero_page_range() argument 52 rc = dax_direct_access(dax_dev, pgoff, nr_pages, DAX_ACCESS, in dcssblk_dax_zero_page_range() 58 dax_flush(dax_dev, kaddr, nr_pages << PAGE_SHIFT); in dcssblk_dax_zero_page_range() 80 struct dax_device *dax_dev; member 416 kill_dax(dev_info->dax_dev); in dcssblk_shared_store() 417 put_dax(dev_info->dax_dev); in dcssblk_shared_store() 540 struct dax_device *dax_dev; in dcssblk_setup_dax() local 542 dax_dev = alloc_dax(dev_info, &dcssblk_dax_ops); in dcssblk_setup_dax() 543 if (IS_ERR(dax_dev)) in dcssblk_setup_dax() [all …]
|
| /linux/drivers/md/ |
| H A D | dm-linear.c | 168 return lc->dev->dax_dev; in linear_dax_pgoff() 175 struct dax_device *dax_dev = linear_dax_pgoff(ti, &pgoff); in linear_dax_direct_access() local 177 return dax_direct_access(dax_dev, pgoff, nr_pages, mode, kaddr, pfn); in linear_dax_direct_access() 183 struct dax_device *dax_dev = linear_dax_pgoff(ti, &pgoff); in linear_dax_zero_page_range() local 185 return dax_zero_page_range(dax_dev, pgoff, nr_pages); in linear_dax_zero_page_range() 191 struct dax_device *dax_dev = linear_dax_pgoff(ti, &pgoff); in linear_dax_recovery_write() local 193 return dax_recovery_write(dax_dev, pgoff, addr, bytes, i); in linear_dax_recovery_write()
|
| H A D | dm-stripe.c | 314 return sc->stripe[stripe].dev->dax_dev; in stripe_dax_pgoff() 321 struct dax_device *dax_dev = stripe_dax_pgoff(ti, &pgoff); in stripe_dax_direct_access() local 323 return dax_direct_access(dax_dev, pgoff, nr_pages, mode, kaddr, pfn); in stripe_dax_direct_access() 329 struct dax_device *dax_dev = stripe_dax_pgoff(ti, &pgoff); in stripe_dax_zero_page_range() local 331 return dax_zero_page_range(dax_dev, pgoff, nr_pages); in stripe_dax_zero_page_range() 337 struct dax_device *dax_dev = stripe_dax_pgoff(ti, &pgoff); in stripe_dax_recovery_write() local 339 return dax_recovery_write(dax_dev, pgoff, addr, bytes, i); in stripe_dax_recovery_write()
|
| H A D | dm-log-writes.c | 892 return lc->dev->dax_dev; in log_writes_dax_pgoff() 899 struct dax_device *dax_dev = log_writes_dax_pgoff(ti, &pgoff); in log_writes_dax_direct_access() local 901 return dax_direct_access(dax_dev, pgoff, nr_pages, mode, kaddr, pfn); in log_writes_dax_direct_access() 907 struct dax_device *dax_dev = log_writes_dax_pgoff(ti, &pgoff); in log_writes_dax_zero_page_range() local 909 return dax_zero_page_range(dax_dev, pgoff, nr_pages << PAGE_SHIFT); in log_writes_dax_zero_page_range() 915 struct dax_device *dax_dev = log_writes_dax_pgoff(ti, &pgoff); in log_writes_dax_recovery_write() local 917 return dax_recovery_write(dax_dev, pgoff, addr, bytes, i); in log_writes_dax_recovery_write()
|
| H A D | dm-table.c | 853 if (dev->dax_dev) in device_not_dax_capable() 864 return !dev->dax_dev || !dax_synchronous(dev->dax_dev); in device_not_dax_synchronous_capable() 1884 struct dax_device *dax_dev = dev->dax_dev; in device_dax_write_cache_enabled() local 1886 if (!dax_dev) in device_dax_write_cache_enabled() 1889 if (dax_write_cache_enabled(dax_dev)) in device_dax_write_cache_enabled() 2105 set_dax_synchronous(t->md->dax_dev); in dm_table_set_restrictions() 2108 dax_write_cache(t->md->dax_dev, true); in dm_table_set_restrictions()
|
| H A D | dm-writecache.c | 285 da = dax_direct_access(wc->ssd_dev->dax_dev, offset, p, DAX_ACCESS, in persistent_memory_claim() 310 daa = dax_direct_access(wc->ssd_dev->dax_dev, offset + i, in persistent_memory_claim() 2507 if (!dax_synchronous(wc->ssd_dev->dax_dev)) { in writecache_ctr()
|
| /linux/fs/fuse/ |
| H A D | virtio_fs.c | 72 struct dax_device *dax_dev; member 1006 static long virtio_fs_direct_access(struct dax_device *dax_dev, pgoff_t pgoff, in virtio_fs_direct_access() argument 1010 struct virtio_fs *fs = dax_get_private(dax_dev); in virtio_fs_direct_access() 1021 static int virtio_fs_zero_page_range(struct dax_device *dax_dev, in virtio_fs_zero_page_range() argument 1027 rc = dax_direct_access(dax_dev, pgoff, nr_pages, DAX_ACCESS, &kaddr, in virtio_fs_zero_page_range() 1033 dax_flush(dax_dev, kaddr, nr_pages << PAGE_SHIFT); in virtio_fs_zero_page_range() 1044 struct dax_device *dax_dev = data; in virtio_fs_cleanup_dax() local 1046 kill_dax(dax_dev); in virtio_fs_cleanup_dax() 1047 put_dax(dax_dev); in virtio_fs_cleanup_dax() 1050 DEFINE_FREE(cleanup_dax, struct dax_dev *, if (!IS_ERR_OR_NULL(_T)) virtio_fs_cleanup_dax(_T)) [all …]
|
| H A D | dax.c | 579 iomap->dax_dev = fc->dax->dev; in fuse_iomap_begin() 1248 struct dax_device *dax_dev) in fuse_dax_conn_alloc() argument 1255 if (!dax_dev) in fuse_dax_conn_alloc() 1263 fcd->dev = dax_dev; in fuse_dax_conn_alloc()
|
| H A D | fuse_i.h | 624 struct dax_device *dax_dev; member 1518 struct dax_device *dax_dev);
|
| H A D | inode.c | 1854 err = fuse_dax_conn_alloc(fc, ctx->dax_mode, ctx->dax_dev); in fuse_fill_super_common()
|
| /linux/fs/ |
| H A D | dax.c | 1011 rc = dax_direct_access(iter->iomap.dax_dev, pgoff, 1, DAX_ACCESS, in copy_cow_page_dax() 1100 static int dax_writeback_one(struct xa_state *xas, struct dax_device *dax_dev, in dax_writeback_one() argument 1173 dax_flush(dax_dev, page_address(pfn_to_page(pfn)), count * PAGE_SIZE); in dax_writeback_one() 1200 struct dax_device *dax_dev, struct writeback_control *wbc) in dax_writeback_mapping_range() argument 1221 ret = dax_writeback_one(&xas, dax_dev, mapping, entry); in dax_writeback_mapping_range() 1248 length = dax_direct_access(iomap->dax_dev, pgoff, PHYS_PFN(size), in dax_iomap_direct_access() 1347 dax_flush(srcmap->dax_dev, daddr, size); in dax_iomap_copy_around() 1487 ret = dax_direct_access(iomap->dax_dev, pgoff, 1, DAX_ACCESS, &kaddr, in dax_memzero() 1497 dax_flush(iomap->dax_dev, kaddr + offset, size); in dax_memzero() 1531 ret = dax_zero_page_range(iomap->dax_dev, pgoff, 1); in dax_zero_iter() [all …]
|
| /linux/fs/erofs/ |
| H A D | super.c | 164 dif->dax_dev = fs_dax_get_by_bdev(file_bdev(file), in erofs_init_device() 170 if (!dif->dax_dev && test_opt(&sbi->opt, DAX_ALWAYS)) { in erofs_init_device() 208 if (test_opt(&sbi->opt, DAX_ALWAYS) && !sbi->dif0.dax_dev) { in erofs_scan_devices() 704 sbi->dif0.dax_dev = fs_dax_get_by_bdev(sb->s_bdev, in erofs_fc_fill_super() 857 fs_put_dax(dif->dax_dev, NULL); in erofs_release_device_info() 946 fs_put_dax(sbi->dif0.dax_dev, NULL); in erofs_kill_sb()
|
| H A D | data.c | 312 iomap->dax_dev = mdev.m_dif->dax_dev; in erofs_iomap_begin()
|
| /linux/Documentation/filesystems/iomap/ |
| H A D | design.rst | 167 struct dax_device *dax_dev; 197 The device is returned in ``bdev`` or ``dax_dev``. 202 The device is returned in ``bdev`` or ``dax_dev``. 282 * ``dax_dev`` describes the DAX device for this mapping.
|
| /linux/fs/ext4/ |
| H A D | file.c | 808 struct dax_device *dax_dev = EXT4_SB(inode->i_sb)->s_daxdev; in ext4_file_mmap_prepare() local 821 if (!daxdev_mapping_supported(desc, file_inode(file), dax_dev)) in ext4_file_mmap_prepare()
|
| /linux/fs/xfs/ |
| H A D | xfs_iomap.c | 147 iomap->dax_dev = target->bt_daxdev; in xfs_bmbt_to_iomap() 183 iomap->dax_dev = target->bt_daxdev; in xfs_hole_to_iomap()
|
| /linux/fs/ext2/ |
| H A D | inode.c | 843 iomap->dax_dev = sbi->s_daxdev; in ext2_iomap_begin()
|