From patchwork Tue Sep 27 16:43:30 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kara X-Patchwork-Id: 9352313 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id CE7F060757 for ; Tue, 27 Sep 2016 16:43:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BFF3128A0B for ; Tue, 27 Sep 2016 16:43:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B463E29297; Tue, 27 Sep 2016 16:43:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=2.0 tests=BAYES_20, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from ml01.01.org (ml01.01.org [198.145.21.10]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 471E929282 for ; Tue, 27 Sep 2016 16:43:46 +0000 (UTC) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 9AA231A1DF5; Tue, 27 Sep 2016 09:43:46 -0700 (PDT) X-Original-To: linux-nvdimm@lists.01.org Delivered-To: linux-nvdimm@lists.01.org Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 990471A1DF5 for ; Tue, 27 Sep 2016 09:43:45 -0700 (PDT) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id ED0D2AAEF; Tue, 27 Sep 2016 16:43:43 +0000 (UTC) Received: by quack2.suse.cz (Postfix, from userid 1000) id BADDB1E0F1E; Tue, 27 Sep 2016 18:43:42 +0200 (CEST) From: Jan Kara To: linux-fsdevel@vger.kernel.org Subject: [PATCH 1/6] dax: Do not warn about BH_New buffers Date: Tue, 27 Sep 2016 18:43:30 +0200 Message-Id: <1474994615-29553-2-git-send-email-jack@suse.cz> X-Mailer: git-send-email 2.6.6 In-Reply-To: <1474994615-29553-1-git-send-email-jack@suse.cz> References: <1474994615-29553-1-git-send-email-jack@suse.cz> X-BeenThere: linux-nvdimm@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Linux-nvdimm developer list." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jan Kara , linux-nvdimm@lists.01.org MIME-Version: 1.0 Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" X-Virus-Scanned: ClamAV using ClamSMTP Filesystems will return BH_New buffers to dax code to indicate freshly allocated blocks which will then trigger synchronization of file mappings in page tables with actual block mappings. So do not warn about returned BH_New buffers. Signed-off-by: Jan Kara Reviewed-by: Christoph Hellwig --- fs/dax.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/fs/dax.c b/fs/dax.c index 233f548d298e..1542653e8aa1 100644 --- a/fs/dax.c +++ b/fs/dax.c @@ -158,8 +158,6 @@ static ssize_t dax_io(struct inode *inode, struct iov_iter *iter, .addr = ERR_PTR(-EIO), }; unsigned blkbits = inode->i_blkbits; - sector_t file_blks = (i_size_read(inode) + (1 << blkbits) - 1) - >> blkbits; if (rw == READ) end = min(end, i_size_read(inode)); @@ -186,9 +184,8 @@ static ssize_t dax_io(struct inode *inode, struct iov_iter *iter, * We allow uninitialized buffers for writes * beyond EOF as those cannot race with faults */ - WARN_ON_ONCE( - (buffer_new(bh) && block < file_blks) || - (rw == WRITE && buffer_unwritten(bh))); + WARN_ON_ONCE(rw == WRITE && + buffer_unwritten(bh)); } else { unsigned done = bh->b_size - (bh_max - (pos - first)); @@ -985,7 +982,7 @@ int dax_fault(struct vm_area_struct *vma, struct vm_fault *vmf, } /* Filesystem should not return unwritten buffers to us! */ - WARN_ON_ONCE(buffer_unwritten(&bh) || buffer_new(&bh)); + WARN_ON_ONCE(buffer_unwritten(&bh)); error = dax_insert_mapping(mapping, bh.b_bdev, to_sector(&bh, inode), bh.b_size, &entry, vma, vmf); unlock_entry: @@ -1094,7 +1091,7 @@ int dax_pmd_fault(struct vm_area_struct *vma, unsigned long address, if (get_block(inode, block, &bh, 1) != 0) return VM_FAULT_SIGBUS; alloc = true; - WARN_ON_ONCE(buffer_unwritten(&bh) || buffer_new(&bh)); + WARN_ON_ONCE(buffer_unwritten(&bh)); } bdev = bh.b_bdev;