From: Ross Zwisler <ross.zwisler@linux.intel.com> To: linux-kernel@vger.kernel.org Cc: Ross Zwisler <ross.zwisler@linux.intel.com>, Alexander Viro <viro@zeniv.linux.org.uk>, Andrew Morton <akpm@linux-foundation.org>, Dan Williams <dan.j.williams@intel.com>, Dave Chinner <david@fromorbit.com>, Jan Kara <jack@suse.com>, Matthew Wilcox <willy@linux.intel.com>, linux-fsdevel@vger.kernel.org, linux-nvdimm@lists.01.org Subject: [PATCH 1/2] block: fix pfn_mkwrite() DAX fault handler Date: Thu, 28 Jan 2016 12:35:03 -0700 [thread overview] Message-ID: <1454009704-25959-1-git-send-email-ross.zwisler@linux.intel.com> (raw) Previously the pfn_mkwrite() fault handler for raw block devices called bldev_dax_fault() -> __dax_fault() to do a full DAX page fault. Really what the pfn_mkwrite() fault handler needs to do is call dax_pfn_mkwrite() to make sure that the radix tree entry for the given PTE is marked as dirty so that a follow-up fsync or msync call will flush it durably to media. Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com> Fixes: 5a023cdba50c ("block: enable dax for raw block devices") --- fs/block_dev.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fs/block_dev.c b/fs/block_dev.c index 7b9cd49..fa0507a 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -1730,6 +1730,12 @@ static int blkdev_dax_fault(struct vm_area_struct *vma, struct vm_fault *vmf) return __dax_fault(vma, vmf, blkdev_get_block, NULL); } +static int blkdev_dax_pfn_mkwrite(struct vm_area_struct *vma, + struct vm_fault *vmf) +{ + return dax_pfn_mkwrite(vma, vmf); +} + static int blkdev_dax_pmd_fault(struct vm_area_struct *vma, unsigned long addr, pmd_t *pmd, unsigned int flags) { @@ -1761,7 +1767,7 @@ static const struct vm_operations_struct blkdev_dax_vm_ops = { .close = blkdev_vm_close, .fault = blkdev_dax_fault, .pmd_fault = blkdev_dax_pmd_fault, - .pfn_mkwrite = blkdev_dax_fault, + .pfn_mkwrite = blkdev_dax_pfn_mkwrite, }; static const struct vm_operations_struct blkdev_default_vm_ops = { -- 2.5.0
WARNING: multiple messages have this Message-ID (diff)
From: Ross Zwisler <ross.zwisler@linux.intel.com> To: linux-kernel@vger.kernel.org Cc: Ross Zwisler <ross.zwisler@linux.intel.com>, Alexander Viro <viro@zeniv.linux.org.uk>, Andrew Morton <akpm@linux-foundation.org>, Dan Williams <dan.j.williams@intel.com>, Dave Chinner <david@fromorbit.com>, Jan Kara <jack@suse.com>, Matthew Wilcox <willy@linux.intel.com>, linux-fsdevel@vger.kernel.org, linux-nvdimm@ml01.01.org Subject: [PATCH 1/2] block: fix pfn_mkwrite() DAX fault handler Date: Thu, 28 Jan 2016 12:35:03 -0700 [thread overview] Message-ID: <1454009704-25959-1-git-send-email-ross.zwisler@linux.intel.com> (raw) Previously the pfn_mkwrite() fault handler for raw block devices called bldev_dax_fault() -> __dax_fault() to do a full DAX page fault. Really what the pfn_mkwrite() fault handler needs to do is call dax_pfn_mkwrite() to make sure that the radix tree entry for the given PTE is marked as dirty so that a follow-up fsync or msync call will flush it durably to media. Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com> Fixes: 5a023cdba50c ("block: enable dax for raw block devices") --- fs/block_dev.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fs/block_dev.c b/fs/block_dev.c index 7b9cd49..fa0507a 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -1730,6 +1730,12 @@ static int blkdev_dax_fault(struct vm_area_struct *vma, struct vm_fault *vmf) return __dax_fault(vma, vmf, blkdev_get_block, NULL); } +static int blkdev_dax_pfn_mkwrite(struct vm_area_struct *vma, + struct vm_fault *vmf) +{ + return dax_pfn_mkwrite(vma, vmf); +} + static int blkdev_dax_pmd_fault(struct vm_area_struct *vma, unsigned long addr, pmd_t *pmd, unsigned int flags) { @@ -1761,7 +1767,7 @@ static const struct vm_operations_struct blkdev_dax_vm_ops = { .close = blkdev_vm_close, .fault = blkdev_dax_fault, .pmd_fault = blkdev_dax_pmd_fault, - .pfn_mkwrite = blkdev_dax_fault, + .pfn_mkwrite = blkdev_dax_pfn_mkwrite, }; static const struct vm_operations_struct blkdev_default_vm_ops = { -- 2.5.0
next reply other threads:[~2016-01-28 19:35 UTC|newest] Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-01-28 19:35 Ross Zwisler [this message] 2016-01-28 19:35 ` [PATCH 1/2] block: fix pfn_mkwrite() DAX fault handler Ross Zwisler 2016-01-28 19:35 ` [PATCH 2/2] dax: fix bdev NULL pointer dereferences Ross Zwisler 2016-01-28 19:35 ` Ross Zwisler 2016-01-28 20:21 ` Dan Williams 2016-01-28 20:21 ` Dan Williams 2016-01-28 21:38 ` Christoph Hellwig 2016-01-29 18:28 ` Ross Zwisler 2016-01-29 23:34 ` Ross Zwisler 2016-01-30 0:18 ` Dan Williams 2016-01-31 22:44 ` Dave Chinner 2016-01-30 5:28 ` Matthew Wilcox 2016-01-30 6:01 ` Dan Williams 2016-01-30 7:08 ` Jared Hulbert 2016-01-31 2:32 ` Matthew Wilcox 2016-01-31 6:12 ` Ross Zwisler 2016-01-31 10:55 ` Matthew Wilcox 2016-01-31 16:38 ` Dan Williams 2016-01-31 18:07 ` Matthew Wilcox 2016-01-31 18:18 ` Dan Williams 2016-01-31 18:27 ` Matthew Wilcox 2016-01-31 18:50 ` Dan Williams 2016-01-31 19:51 ` Dan Williams 2016-02-01 13:44 ` Matthew Wilcox 2016-02-01 14:51 ` Jan Kara 2016-02-01 20:49 ` Matthew Wilcox 2016-02-01 21:47 ` Dave Chinner 2016-02-02 6:06 ` Jared Hulbert 2016-02-02 6:46 ` Dan Williams 2016-02-02 8:05 ` Jared Hulbert 2016-02-02 16:51 ` Dan Williams 2016-02-02 21:46 ` Jared Hulbert 2016-02-03 0:34 ` Matthew Wilcox 2016-02-03 1:21 ` Jared Hulbert 2016-02-02 11:17 ` Jan Kara 2016-02-02 16:33 ` Dan Williams 2016-02-02 16:46 ` Jan Kara 2016-02-02 17:10 ` Dan Williams 2016-02-02 17:34 ` Ross Zwisler 2016-02-02 17:46 ` Dan Williams 2016-02-02 17:47 ` Dan Williams 2016-02-02 18:24 ` Ross Zwisler 2016-02-02 18:46 ` Matthew Wilcox 2016-02-02 18:59 ` Dan Williams 2016-02-02 20:14 ` Matthew Wilcox 2016-02-03 11:09 ` Jan Kara 2016-02-03 10:46 ` Jan Kara 2016-02-03 20:13 ` Ross Zwisler 2016-02-04 9:15 ` Jan Kara 2016-02-04 23:38 ` Ross Zwisler 2016-02-06 23:15 ` Dave Chinner 2016-02-07 5:27 ` Ross Zwisler 2016-02-04 19:56 ` Ross Zwisler 2016-02-04 20:29 ` Jan Kara 2016-02-04 22:19 ` Ross Zwisler 2016-02-05 22:25 ` Ross Zwisler 2016-02-06 23:40 ` Dave Chinner 2016-02-07 6:43 ` Ross Zwisler 2016-02-08 13:48 ` Jan Kara 2016-02-07 8:38 ` Christoph Hellwig 2016-02-08 15:55 ` Ross Zwisler 2016-02-02 18:41 ` Ross Zwisler 2016-02-02 18:53 ` Ross Zwisler 2016-02-02 0:02 ` Ross Zwisler 2016-02-02 7:10 ` Dave Chinner 2016-02-02 10:34 ` Jan Kara
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1454009704-25959-1-git-send-email-ross.zwisler@linux.intel.com \ --to=ross.zwisler@linux.intel.com \ --cc=akpm@linux-foundation.org \ --cc=dan.j.williams@intel.com \ --cc=david@fromorbit.com \ --cc=jack@suse.com \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-nvdimm@lists.01.org \ --cc=viro@zeniv.linux.org.uk \ --cc=willy@linux.intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.