From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by ml01.01.org (Postfix) with ESMTP id C3CFA1A1DF3 for ; Tue, 29 Mar 2016 15:18:49 -0700 (PDT) Date: Tue, 29 Mar 2016 16:17:47 -0600 From: Ross Zwisler Subject: Re: [PATCH 10/10] dax: Remove i_mmap_lock protection Message-ID: <20160329221747.GB21264@linux.intel.com> References: <1458566575-28063-1-git-send-email-jack@suse.cz> <1458566575-28063-11-git-send-email-jack@suse.cz> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1458566575-28063-11-git-send-email-jack@suse.cz> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" To: Jan Kara Cc: linux-nvdimm@lists.01.org, NeilBrown , Wilcox, List-ID: On Mon, Mar 21, 2016 at 02:22:55PM +0100, Jan Kara wrote: > Currently faults are protected against truncate by filesystem specific > i_mmap_sem and page lock in case of hole page. Cow faults are protected > DAX radix tree entry locking. So there's no need for i_mmap_lock in DAX > code. Remove it. > > Signed-off-by: Jan Kara Reviewed-by: Ross Zwisler > --- > fs/dax.c | 7 ------- > 1 file changed, 7 deletions(-) > > diff --git a/fs/dax.c b/fs/dax.c > index 2fcf4e8a17c5..a2a370db59b7 100644 > --- a/fs/dax.c > +++ b/fs/dax.c > @@ -795,8 +795,6 @@ static int dax_insert_mapping(struct address_space *mapping, > int error; > void *ret; > > - i_mmap_lock_read(mapping); > - > if (dax_map_atomic(bdev, &dax) < 0) { > error = PTR_ERR(dax.addr); > goto out; > @@ -821,7 +819,6 @@ static int dax_insert_mapping(struct address_space *mapping, > > error = vm_insert_mixed(vma, vaddr, dax.pfn); > out: > - i_mmap_unlock_read(mapping); > put_locked_mapping_entry(mapping, vmf->pgoff, entry); > return error; > } > @@ -1063,8 +1060,6 @@ int __dax_pmd_fault(struct vm_area_struct *vma, unsigned long address, > truncate_pagecache_range(inode, lstart, lend); > } > > - i_mmap_lock_read(mapping); > - > if (!write && !buffer_mapped(&bh) && buffer_uptodate(&bh)) { > spinlock_t *ptl; > pmd_t entry; > @@ -1162,8 +1157,6 @@ int __dax_pmd_fault(struct vm_area_struct *vma, unsigned long address, > } > > out: > - i_mmap_unlock_read(mapping); > - > return result; > > fallback: > -- > 2.6.2 > _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com ([192.55.52.88]:43221 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752020AbcC2WSV (ORCPT ); Tue, 29 Mar 2016 18:18:21 -0400 Date: Tue, 29 Mar 2016 16:17:47 -0600 From: Ross Zwisler To: Jan Kara Cc: linux-fsdevel@vger.kernel.org, "Wilcox, Matthew R" , Ross Zwisler , Dan Williams , linux-nvdimm@lists.01.org, NeilBrown Subject: Re: [PATCH 10/10] dax: Remove i_mmap_lock protection Message-ID: <20160329221747.GB21264@linux.intel.com> References: <1458566575-28063-1-git-send-email-jack@suse.cz> <1458566575-28063-11-git-send-email-jack@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1458566575-28063-11-git-send-email-jack@suse.cz> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Mon, Mar 21, 2016 at 02:22:55PM +0100, Jan Kara wrote: > Currently faults are protected against truncate by filesystem specific > i_mmap_sem and page lock in case of hole page. Cow faults are protected > DAX radix tree entry locking. So there's no need for i_mmap_lock in DAX > code. Remove it. > > Signed-off-by: Jan Kara Reviewed-by: Ross Zwisler > --- > fs/dax.c | 7 ------- > 1 file changed, 7 deletions(-) > > diff --git a/fs/dax.c b/fs/dax.c > index 2fcf4e8a17c5..a2a370db59b7 100644 > --- a/fs/dax.c > +++ b/fs/dax.c > @@ -795,8 +795,6 @@ static int dax_insert_mapping(struct address_space *mapping, > int error; > void *ret; > > - i_mmap_lock_read(mapping); > - > if (dax_map_atomic(bdev, &dax) < 0) { > error = PTR_ERR(dax.addr); > goto out; > @@ -821,7 +819,6 @@ static int dax_insert_mapping(struct address_space *mapping, > > error = vm_insert_mixed(vma, vaddr, dax.pfn); > out: > - i_mmap_unlock_read(mapping); > put_locked_mapping_entry(mapping, vmf->pgoff, entry); > return error; > } > @@ -1063,8 +1060,6 @@ int __dax_pmd_fault(struct vm_area_struct *vma, unsigned long address, > truncate_pagecache_range(inode, lstart, lend); > } > > - i_mmap_lock_read(mapping); > - > if (!write && !buffer_mapped(&bh) && buffer_uptodate(&bh)) { > spinlock_t *ptl; > pmd_t entry; > @@ -1162,8 +1157,6 @@ int __dax_pmd_fault(struct vm_area_struct *vma, unsigned long address, > } > > out: > - i_mmap_unlock_read(mapping); > - > return result; > > fallback: > -- > 2.6.2 >