[PATCH 4.16 191/196] device-dax: allow MAP_SYNC to succeed

From: Greg Kroah-Hartman
Date: Sun Apr 22 2018 - 11:44:02 EST

4.16-stable review patch. If anyone has any objections, please let me know.


From: Dave Jiang <dave.jiang@xxxxxxxxx>

commit ef8423022324cf79bd1b41d8707c766461e7e555 upstream.

MAP_SYNC is a nop for device-dax. Allow MAP_SYNC to succeed on device-dax
to eliminate special casing between device-dax and fs-dax as to when the
flag can be specified. Device-dax users already implicitly assume that they do
not need to call fsync(), and this enables them to explicitly check for this

Cc: <stable@xxxxxxxxxxxxxxx>
Fixes: b6fb293f2497 ("mm: Define MAP_SYNC and VM_SYNC flags")
Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx>
Reviewed-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

drivers/dax/device.c | 2 ++
1 file changed, 2 insertions(+)

--- a/drivers/dax/device.c
+++ b/drivers/dax/device.c
@@ -19,6 +19,7 @@
#include <linux/dax.h>
#include <linux/fs.h>
#include <linux/mm.h>
+#include <linux/mman.h>
#include "dax-private.h"
#include "dax.h"

@@ -534,6 +535,7 @@ static const struct file_operations dax_
.release = dax_release,
.get_unmapped_area = dax_get_unmapped_area,
.mmap = dax_mmap,
+ .mmap_supported_flags = MAP_SYNC,

static void dev_dax_release(struct device *dev)