Thread (1 message) read the whole thread 1 message, 1 author, 2019-05-14
STALE2631d REVIEWED: 1 (0M)

Revision v9 of 12 in this series; 1 review trailer.

Revisions (12)
  1. v9 current
  2. v10 [diff vs current]
  3. v10 [diff vs current]
  4. v11 [diff vs current]
  5. v11 [diff vs current]
  6. v12 [diff vs current]
  7. v12 [diff vs current]
  8. v13 [diff vs current]
  9. v13 [diff vs current]
  10. v14 [diff vs current]
  11. v14 [diff vs current]
  12. v15 [diff vs current]

[PATCH v9 7/7] xfs: disable map_sync for async flush

From: Pankaj Gupta <hidden>
Date: 2019-05-14 14:59:02
Also in: kvm, linux-acpi, linux-ext4, linux-fsdevel, linux-xfs, lkml, nvdimm, qemu-devel
Subsystem: filesystems (vfs and infrastructure), the rest, xfs filesystem · Maintainers: Alexander Viro, Christian Brauner, Linus Torvalds, Carlos Maiolino

Dont support 'MAP_SYNC' with non-DAX files and DAX files
with asynchronous dax_device. Virtio pmem provides
asynchronous host page cache flush mechanism. We don't
support 'MAP_SYNC' with virtio pmem and xfs.

Signed-off-by: Pankaj Gupta <redacted>
Reviewed-by: Darrick J. Wong <redacted>
---
 fs/xfs/xfs_file.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index a7ceae90110e..f17652cca5ff 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -1203,11 +1203,14 @@ xfs_file_mmap(
 	struct file	*filp,
 	struct vm_area_struct *vma)
 {
+	struct dax_device 	*dax_dev;
+
+	dax_dev = xfs_find_daxdev_for_inode(file_inode(filp));
 	/*
-	 * We don't support synchronous mappings for non-DAX files. At least
-	 * until someone comes with a sensible use case.
+	 * We don't support synchronous mappings for non-DAX files and
+	 * for DAX files if underneath dax_device is not synchronous.
 	 */
-	if (!IS_DAX(file_inode(filp)) && (vma->vm_flags & VM_SYNC))
+	if (!daxdev_mapping_supported(vma, dax_dev))
 		return -EOPNOTSUPP;
 
 	file_accessed(filp);
-- 
2.20.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help