lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 23 Apr 2019 13:36:10 +0530 From: Pankaj Gupta <pagupta@...hat.com> To: linux-nvdimm@...ts.01.org, linux-kernel@...r.kernel.org, virtualization@...ts.linux-foundation.org, kvm@...r.kernel.org, linux-fsdevel@...r.kernel.org, linux-acpi@...r.kernel.org, qemu-devel@...gnu.org, linux-ext4@...r.kernel.org, linux-xfs@...r.kernel.org Cc: dan.j.williams@...el.com, zwisler@...nel.org, vishal.l.verma@...el.com, dave.jiang@...el.com, mst@...hat.com, jasowang@...hat.com, willy@...radead.org, rjw@...ysocki.net, hch@...radead.org, lenb@...nel.org, jack@...e.cz, tytso@....edu, adilger.kernel@...ger.ca, darrick.wong@...cle.com, lcapitulino@...hat.com, kwolf@...hat.com, imammedo@...hat.com, jmoyer@...hat.com, nilal@...hat.com, riel@...riel.com, stefanha@...hat.com, aarcange@...hat.com, david@...hat.com, david@...morbit.com, cohuck@...hat.com, xiaoguangrong.eric@...il.com, pagupta@...hat.com, pbonzini@...hat.com, yuval.shaia@...cle.com, kilobyte@...band.pl Subject: [PATCH v6 4/6] dax: check synchronous mapping is supported This patch introduces 'daxdev_mapping_supported' helper which checks if 'MAP_SYNC' is supported with filesystem mapping. It also checks if corresponding dax_device is synchronous. Virtio pmem device is asynchronous and does not not support VM_SYNC. Suggested-by: Jan Kara <jack@...e.cz> Signed-off-by: Pankaj Gupta <pagupta@...hat.com> --- include/linux/dax.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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; -- 2.20.1
Powered by blists - more mailing lists