|
@@ -463,6 +463,23 @@ int dax_fault(struct vm_area_struct *vma, struct vm_fault *vmf,
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(dax_fault);
|
|
|
|
|
|
+/**
|
|
|
+ * dax_pfn_mkwrite - handle first write to DAX page
|
|
|
+ * @vma: The virtual memory area where the fault occurred
|
|
|
+ * @vmf: The description of the fault
|
|
|
+ *
|
|
|
+ */
|
|
|
+int dax_pfn_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
|
|
|
+{
|
|
|
+ struct super_block *sb = file_inode(vma->vm_file)->i_sb;
|
|
|
+
|
|
|
+ sb_start_pagefault(sb);
|
|
|
+ file_update_time(vma->vm_file);
|
|
|
+ sb_end_pagefault(sb);
|
|
|
+ return VM_FAULT_NOPAGE;
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(dax_pfn_mkwrite);
|
|
|
+
|
|
|
/**
|
|
|
* dax_zero_page_range - zero a range within a page of a DAX file
|
|
|
* @inode: The file being truncated
|