Message ID | 20190426050039.17460-5-pagupta@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | virtio pmem driver | expand |
From: Pankaj Gupta <pagupta@redhat.com> Date: Thu, Apr 25, 2019 at 10:00 PM > +static inline bool daxdev_mapping_supported(struct vm_area_struct *vma, > + struct dax_device *dax_dev) > +{ > + return !(vma->flags & VM_SYNC); > +} Shouldn't it be rather `return !(vma->vm_flags & VM_SYNC);`? There is no field named `flags` in `struct vm_area_struct`. Thank you, Jakub
> > From: Pankaj Gupta <pagupta@redhat.com> > Date: Thu, Apr 25, 2019 at 10:00 PM > > > +static inline bool daxdev_mapping_supported(struct vm_area_struct *vma, > > + struct dax_device *dax_dev) > > +{ > > + return !(vma->flags & VM_SYNC); > > +} > > Shouldn't it be rather `return !(vma->vm_flags & VM_SYNC);`? There is > no field named `flags` in `struct vm_area_struct`. Thanks for catching. Sorry! for this. Will correct in v8. Thank you, Pankaj > > Thank you, > Jakub >
diff --git a/include/linux/dax.h b/include/linux/dax.h index c97fc0cc7167..41b4a5db6305 100644 --- a/include/linux/dax.h +++ b/include/linux/dax.h @@ -41,6 +41,18 @@ void kill_dax(struct dax_device *dax_dev); void dax_write_cache(struct dax_device *dax_dev, bool wc); bool dax_write_cache_enabled(struct dax_device *dax_dev); bool dax_synchronous(struct dax_device *dax_dev); +/* + * Check if given mapping is supported by the file / underlying device. + */ +static inline bool daxdev_mapping_supported(struct vm_area_struct *vma, + struct dax_device *dax_dev) +{ + if (!(vma->vm_flags & VM_SYNC)) + return true; + if (!IS_DAX(file_inode(vma->vm_file))) + return false; + return dax_synchronous(dax_dev); +} #else static inline struct dax_device *dax_get_by_host(const char *host) { @@ -68,6 +80,11 @@ static inline bool dax_write_cache_enabled(struct dax_device *dax_dev) { return false; } +static inline bool daxdev_mapping_supported(struct vm_area_struct *vma, + struct dax_device *dax_dev) +{ + return !(vma->flags & VM_SYNC); +} #endif struct writeback_control;