From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from bombadil.infradead.org ([198.137.202.9]:46259 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756650AbcECV3f (ORCPT ); Tue, 3 May 2016 17:29:35 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com Cc: rpeterso@redhat.com, linux-fsdevel@vger.kernel.org Subject: [PATCH 09/14] iomap: support DAX based zeroing Date: Tue, 3 May 2016 23:29:02 +0200 Message-Id: <1462310947-16132-10-git-send-email-hch@lst.de> In-Reply-To: <1462310947-16132-1-git-send-email-hch@lst.de> References: <1462310947-16132-1-git-send-email-hch@lst.de> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: This avoid needing a separate inefficient get_block based DAX zero_range implementation in file systems. Signed-off-by: Christoph Hellwig --- fs/iomap.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/fs/iomap.c b/fs/iomap.c index 28a8fcb..a3e7dea 100644 --- a/fs/iomap.c +++ b/fs/iomap.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "internal.h" typedef loff_t (*iomap_actor_t)(struct inode *inode, loff_t pos, loff_t len, @@ -264,6 +265,15 @@ iomap_zero_range_actor(struct inode *inode, loff_t pos, loff_t count, if (iomap->type == IOMAP_HOLE || iomap->type == IOMAP_UNWRITTEN) return count; +#ifdef CONFIG_FS_DAX + if (IS_DAX(inode)) { + status = dax_clear_sectors(iomap->bdev, iomap->blkno, count); + if (status) + return status; + return count; + } +#endif + do { unsigned offset, bytes; -- 2.1.4