{"id":829949,"url":"http://patchwork.ozlabs.org/api/1.2/patches/829949/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ext4/patch/20171024152415.22864-8-jack@suse.cz/","project":{"id":8,"url":"http://patchwork.ozlabs.org/api/1.2/projects/8/?format=json","name":"Linux ext4 filesystem development","link_name":"linux-ext4","list_id":"linux-ext4.vger.kernel.org","list_email":"linux-ext4@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20171024152415.22864-8-jack@suse.cz>","list_archive_url":null,"date":"2017-10-24T15:24:04","name":"[07/17] dax: Inline dax_insert_mapping() into the callsite","commit_ref":null,"pull_url":null,"state":"superseded","archived":true,"hash":"20ecb850352d19a6df414161e2a66e3d3cc3e376","submitter":{"id":363,"url":"http://patchwork.ozlabs.org/api/1.2/people/363/?format=json","name":"Jan Kara","email":"jack@suse.cz"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-ext4/patch/20171024152415.22864-8-jack@suse.cz/mbox/","series":[{"id":10008,"url":"http://patchwork.ozlabs.org/api/1.2/series/10008/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ext4/list/?series=10008","date":"2017-10-24T15:23:57","name":"dax, ext4, xfs: Synchronous page faults","version":5,"mbox":"http://patchwork.ozlabs.org/series/10008/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/829949/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/829949/checks/","tags":{},"related":[],"headers":{"Return-Path":"<linux-ext4-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-ext4-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3yLxvD4CZVz9t3m\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 25 Oct 2017 02:26:32 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S932407AbdJXP03 (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 24 Oct 2017 11:26:29 -0400","from mx2.suse.de ([195.135.220.15]:36113 \"EHLO mx2.suse.de\"\n\trhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP\n\tid S932320AbdJXPZc (ORCPT <rfc822;linux-ext4@vger.kernel.org>);\n\tTue, 24 Oct 2017 11:25:32 -0400","from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254])\n\tby mx2.suse.de (Postfix) with ESMTP id 20818ACDD;\n\tTue, 24 Oct 2017 15:25:28 +0000 (UTC)","by quack2.suse.cz (Postfix, from userid 1000)\n\tid 5EAE51E35B8; Tue, 24 Oct 2017 17:25:27 +0200 (CEST)"],"X-Virus-Scanned":"by amavisd-new at test-mx.suse.de","From":"Jan Kara <jack@suse.cz>","To":"Dan Williams <dan.j.williams@intel.com>","Cc":"Ross Zwisler <ross.zwisler@linux.intel.com>,\n\tChristoph Hellwig <hch@infradead.org>,\n\t<linux-ext4@vger.kernel.org>, linux-nvdimm@lists.01.org,\n\t<linux-fsdevel@vger.kernel.org>, <linux-xfs@vger.kernel.org>,\n\tlinux-api@vger.kernel.org, <linux-mm@kvack.org>, Jan Kara <jack@suse.cz>","Subject":"[PATCH 07/17] dax: Inline dax_insert_mapping() into the callsite","Date":"Tue, 24 Oct 2017 17:24:04 +0200","Message-Id":"<20171024152415.22864-8-jack@suse.cz>","X-Mailer":"git-send-email 2.12.3","In-Reply-To":"<20171024152415.22864-1-jack@suse.cz>","References":"<20171024152415.22864-1-jack@suse.cz>","Sender":"linux-ext4-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-ext4.vger.kernel.org>","X-Mailing-List":"linux-ext4@vger.kernel.org"},"content":"dax_insert_mapping() has only one callsite and we will need to further\nfine tune what it does for synchronous faults. Just inline it into the\ncallsite so that we don't have to pass awkward bools around.\n\nReviewed-by: Christoph Hellwig <hch@lst.de>\nReviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com>\nSigned-off-by: Jan Kara <jack@suse.cz>\n---\n fs/dax.c | 46 +++++++++++++++++++---------------------------\n 1 file changed, 19 insertions(+), 27 deletions(-)","diff":"diff --git a/fs/dax.c b/fs/dax.c\nindex 5ea71381dba0..5b20c6456926 100644\n--- a/fs/dax.c\n+++ b/fs/dax.c\n@@ -858,32 +858,6 @@ static int dax_iomap_pfn(struct iomap *iomap, loff_t pos, size_t size,\n \treturn rc;\n }\n \n-static int dax_insert_mapping(struct vm_fault *vmf, struct iomap *iomap,\n-\t\t\t      loff_t pos, void *entry)\n-{\n-\tconst sector_t sector = dax_iomap_sector(iomap, pos);\n-\tstruct vm_area_struct *vma = vmf->vma;\n-\tstruct address_space *mapping = vma->vm_file->f_mapping;\n-\tunsigned long vaddr = vmf->address;\n-\tvoid *ret;\n-\tint rc;\n-\tpfn_t pfn;\n-\n-\trc = dax_iomap_pfn(iomap, pos, PAGE_SIZE, &pfn);\n-\tif (rc < 0)\n-\t\treturn rc;\n-\n-\tret = dax_insert_mapping_entry(mapping, vmf, entry, sector, 0);\n-\tif (IS_ERR(ret))\n-\t\treturn PTR_ERR(ret);\n-\n-\ttrace_dax_insert_mapping(mapping->host, vmf, ret);\n-\tif (vmf->flags & FAULT_FLAG_WRITE)\n-\t\treturn vm_insert_mixed_mkwrite(vma, vaddr, pfn);\n-\telse\n-\t\treturn vm_insert_mixed(vma, vaddr, pfn);\n-}\n-\n /*\n  * The user has performed a load from a hole in the file.  Allocating a new\n  * page in the file would cause excessive storage usage for workloads with\n@@ -1119,6 +1093,7 @@ static int dax_iomap_pte_fault(struct vm_fault *vmf,\n \tbool write = vmf->flags & FAULT_FLAG_WRITE;\n \tint vmf_ret = 0;\n \tvoid *entry;\n+\tpfn_t pfn;\n \n \ttrace_dax_pte_fault(inode, vmf, vmf_ret);\n \t/*\n@@ -1201,7 +1176,24 @@ static int dax_iomap_pte_fault(struct vm_fault *vmf,\n \t\t\tcount_memcg_event_mm(vma->vm_mm, PGMAJFAULT);\n \t\t\tmajor = VM_FAULT_MAJOR;\n \t\t}\n-\t\terror = dax_insert_mapping(vmf, &iomap, pos, entry);\n+\t\terror = dax_iomap_pfn(&iomap, pos, PAGE_SIZE, &pfn);\n+\t\tif (error < 0)\n+\t\t\tgoto error_finish_iomap;\n+\n+\t\tentry = dax_insert_mapping_entry(mapping, vmf, entry,\n+\t\t\t\t\t\t dax_iomap_sector(&iomap, pos),\n+\t\t\t\t\t\t 0);\n+\t\tif (IS_ERR(entry)) {\n+\t\t\terror = PTR_ERR(entry);\n+\t\t\tgoto error_finish_iomap;\n+\t\t}\n+\n+\t\ttrace_dax_insert_mapping(inode, vmf, entry);\n+\t\tif (write)\n+\t\t\terror = vm_insert_mixed_mkwrite(vma, vaddr, pfn);\n+\t\telse\n+\t\t\terror = vm_insert_mixed(vma, vaddr, pfn);\n+\n \t\t/* -EBUSY is fine, somebody else faulted on the same PTE */\n \t\tif (error == -EBUSY)\n \t\t\terror = 0;\n","prefixes":["07/17"]}