Instead of passing in multiple parameters in the pmd_fault() handler, a vmf can be passed in just like a fault() handler. This will simplify code and remove the need for the actual pmd fault handlers to allocate a vmf. Related functions are also modified to do the same. [dave.jiang@intel.com: fix issue with xfs_tests stall when DAX option is off] Link: http://lkml.kernel.org/r/148469861071.195597.3619476895250028518.stgit@djiang5-desk3.ch.intel.com Link: http://lkml.kernel.org/r/1484085142-2297-7-git-send-email-ross.zwisler@linux.intel.com Signed-off-by: Dave Jiang <dave.jiang@intel.com> Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com> Reviewed-by: Jan Kara <jack@suse.cz> Cc: Dave Chinner <david@fromorbit.com> Cc: Matthew Wilcox <mawilcox@microsoft.com> Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing the changes to include/trace (1 of 8 files). Show all
Unified · Split
| @@ -8,9 +8,8 @@ · 7 unmodified lines | ||
| 8 | 8 | |
| 9 | 9 | DECLARE_EVENT_CLASS(dax_pmd_fault_class, |
| 10 | 10 | TP_PROTO(struct inode *inode, struct vm_area_struct *vma, |
| 11 | − unsigned long address, unsigned int flags, pgoff_t pgoff, | |
| 12 | − pgoff_t max_pgoff, int result), | |
| 13 | − TP_ARGS(inode, vma, address, flags, pgoff, max_pgoff, result), | |
| 11 | + struct vm_fault *vmf, pgoff_t max_pgoff, int result), | |
| 12 | + TP_ARGS(inode, vma, vmf, max_pgoff, result), | |
| 14 | 13 | TP_STRUCT__entry( |
| 15 | 14 | __field(unsigned long, ino) |
| 16 | 15 | __field(unsigned long, vm_start) |
| @@ -29,9 +28,9 @@ DECLARE_EVENT_CLASS(dax_pmd_fault_class, · 12 unmodified lines | ||
| 29 | 28 | __entry->vm_start = vma->vm_start; |
| 30 | 29 | __entry->vm_end = vma->vm_end; |
| 31 | 30 | __entry->vm_flags = vma->vm_flags; |
| 32 | − __entry->address = address; | |
| 33 | − __entry->flags = flags; | |
| 34 | − __entry->pgoff = pgoff; | |
| 31 | + __entry->address = vmf->address; | |
| 32 | + __entry->flags = vmf->flags; | |
| 33 | + __entry->pgoff = vmf->pgoff; | |
| 35 | 34 | __entry->max_pgoff = max_pgoff; |
| 36 | 35 | __entry->result = result; |
| 37 | 36 | ), |
| @@ -54,9 +53,9 @@ DECLARE_EVENT_CLASS(dax_pmd_fault_class, · 16 unmodified lines | ||
| 54 | 53 | #define DEFINE_PMD_FAULT_EVENT(name) \ |
| 55 | 54 | DEFINE_EVENT(dax_pmd_fault_class, name, \ |
| 56 | 55 | TP_PROTO(struct inode *inode, struct vm_area_struct *vma, \ |
| 57 | − unsigned long address, unsigned int flags, pgoff_t pgoff, \ | |
| 56 | + struct vm_fault *vmf, \ | |
| 58 | 57 | pgoff_t max_pgoff, int result), \ |
| 59 | − TP_ARGS(inode, vma, address, flags, pgoff, max_pgoff, result)) | |
| 58 | + TP_ARGS(inode, vma, vmf, max_pgoff, result)) | |
| 60 | 59 | |
| 61 | 60 | DEFINE_PMD_FAULT_EVENT(dax_pmd_fault); |
| 62 | 61 | DEFINE_PMD_FAULT_EVENT(dax_pmd_fault_done); |