From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kara Subject: Re: [PATCH v5 14/17] dax: move RADIX_DAX_* defines to dax.h Date: Tue, 11 Oct 2016 09:23:27 +0200 Message-ID: <20161011072327.GF6952@quack2.suse.cz> References: <1475874544-24842-1-git-send-email-ross.zwisler@linux.intel.com> <1475874544-24842-15-git-send-email-ross.zwisler@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: Theodore Ts'o , Matthew Wilcox , Dave Chinner , linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-xfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, Andreas Dilger , Alexander Viro , Jan Kara , linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Andrew Morton , linux-ext4-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Christoph Hellwig To: Ross Zwisler Return-path: Content-Disposition: inline In-Reply-To: <1475874544-24842-15-git-send-email-ross.zwisler-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linux-nvdimm-bounces-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org Sender: "Linux-nvdimm" List-Id: linux-ext4.vger.kernel.org On Fri 07-10-16 15:09:01, Ross Zwisler wrote: > The RADIX_DAX_* defines currently mostly live in fs/dax.c, with just > RADIX_DAX_ENTRY_LOCK being in include/linux/dax.h so it can be used in > mm/filemap.c. When we add PMD support, though, mm/filemap.c will also need > access to the RADIX_DAX_PTE type so it can properly construct a 4k sized > empty entry. > > Instead of shifting the defines between dax.c and dax.h as they are > individually used in other code, just move them wholesale to dax.h so > they'll be available when we need them. > > Signed-off-by: Ross Zwisler Looks good to me. You can add: Reviewed-by: Jan Kara Honza > --- > fs/dax.c | 14 -------------- > include/linux/dax.h | 15 ++++++++++++++- > 2 files changed, 14 insertions(+), 15 deletions(-) > > diff --git a/fs/dax.c b/fs/dax.c > index 5e8febe..ac3cd05 100644 > --- a/fs/dax.c > +++ b/fs/dax.c > @@ -34,20 +34,6 @@ > #include > #include "internal.h" > > -/* > - * We use lowest available bit in exceptional entry for locking, other two > - * bits to determine entry type. In total 3 special bits. > - */ > -#define RADIX_DAX_SHIFT (RADIX_TREE_EXCEPTIONAL_SHIFT + 3) > -#define RADIX_DAX_PTE (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 1)) > -#define RADIX_DAX_PMD (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 2)) > -#define RADIX_DAX_TYPE_MASK (RADIX_DAX_PTE | RADIX_DAX_PMD) > -#define RADIX_DAX_TYPE(entry) ((unsigned long)entry & RADIX_DAX_TYPE_MASK) > -#define RADIX_DAX_SECTOR(entry) (((unsigned long)entry >> RADIX_DAX_SHIFT)) > -#define RADIX_DAX_ENTRY(sector, pmd) ((void *)((unsigned long)sector << \ > - RADIX_DAX_SHIFT | (pmd ? RADIX_DAX_PMD : RADIX_DAX_PTE) | \ > - RADIX_TREE_EXCEPTIONAL_ENTRY)) > - > /* We choose 4096 entries - same as per-zone page wait tables */ > #define DAX_WAIT_TABLE_BITS 12 > #define DAX_WAIT_TABLE_ENTRIES (1 << DAX_WAIT_TABLE_BITS) > diff --git a/include/linux/dax.h b/include/linux/dax.h > index a3dfee4..e9ea78c 100644 > --- a/include/linux/dax.h > +++ b/include/linux/dax.h > @@ -8,8 +8,21 @@ > > struct iomap_ops; > > -/* We use lowest available exceptional entry bit for locking */ > +/* > + * We use lowest available bit in exceptional entry for locking, other two > + * bits to determine entry type. In total 3 special bits. > + */ > +#define RADIX_DAX_SHIFT (RADIX_TREE_EXCEPTIONAL_SHIFT + 3) > #define RADIX_DAX_ENTRY_LOCK (1 << RADIX_TREE_EXCEPTIONAL_SHIFT) > +#define RADIX_DAX_PTE (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 1)) > +#define RADIX_DAX_PMD (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 2)) > +#define RADIX_DAX_TYPE_MASK (RADIX_DAX_PTE | RADIX_DAX_PMD) > +#define RADIX_DAX_TYPE(entry) ((unsigned long)entry & RADIX_DAX_TYPE_MASK) > +#define RADIX_DAX_SECTOR(entry) (((unsigned long)entry >> RADIX_DAX_SHIFT)) > +#define RADIX_DAX_ENTRY(sector, pmd) ((void *)((unsigned long)sector << \ > + RADIX_DAX_SHIFT | (pmd ? RADIX_DAX_PMD : RADIX_DAX_PTE) | \ > + RADIX_TREE_EXCEPTIONAL_ENTRY)) > + > > ssize_t dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter, > struct iomap_ops *ops); > -- > 2.7.4 > > -- Jan Kara SUSE Labs, CR From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 07EA21A1E9B for ; Tue, 11 Oct 2016 11:42:32 -0700 (PDT) Date: Tue, 11 Oct 2016 09:23:27 +0200 From: Jan Kara Subject: Re: [PATCH v5 14/17] dax: move RADIX_DAX_* defines to dax.h Message-ID: <20161011072327.GF6952@quack2.suse.cz> References: <1475874544-24842-1-git-send-email-ross.zwisler@linux.intel.com> <1475874544-24842-15-git-send-email-ross.zwisler@linux.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1475874544-24842-15-git-send-email-ross.zwisler@linux.intel.com> 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: Ross Zwisler Cc: Theodore Ts'o , Matthew Wilcox , Dave Chinner , linux-nvdimm@lists.01.org, linux-kernel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-mm@kvack.org, Andreas Dilger , Alexander Viro , Jan Kara , linux-fsdevel@vger.kernel.org, Andrew Morton , linux-ext4@vger.kernel.org, Christoph Hellwig List-ID: On Fri 07-10-16 15:09:01, Ross Zwisler wrote: > The RADIX_DAX_* defines currently mostly live in fs/dax.c, with just > RADIX_DAX_ENTRY_LOCK being in include/linux/dax.h so it can be used in > mm/filemap.c. When we add PMD support, though, mm/filemap.c will also need > access to the RADIX_DAX_PTE type so it can properly construct a 4k sized > empty entry. > > Instead of shifting the defines between dax.c and dax.h as they are > individually used in other code, just move them wholesale to dax.h so > they'll be available when we need them. > > Signed-off-by: Ross Zwisler Looks good to me. You can add: Reviewed-by: Jan Kara Honza > --- > fs/dax.c | 14 -------------- > include/linux/dax.h | 15 ++++++++++++++- > 2 files changed, 14 insertions(+), 15 deletions(-) > > diff --git a/fs/dax.c b/fs/dax.c > index 5e8febe..ac3cd05 100644 > --- a/fs/dax.c > +++ b/fs/dax.c > @@ -34,20 +34,6 @@ > #include > #include "internal.h" > > -/* > - * We use lowest available bit in exceptional entry for locking, other two > - * bits to determine entry type. In total 3 special bits. > - */ > -#define RADIX_DAX_SHIFT (RADIX_TREE_EXCEPTIONAL_SHIFT + 3) > -#define RADIX_DAX_PTE (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 1)) > -#define RADIX_DAX_PMD (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 2)) > -#define RADIX_DAX_TYPE_MASK (RADIX_DAX_PTE | RADIX_DAX_PMD) > -#define RADIX_DAX_TYPE(entry) ((unsigned long)entry & RADIX_DAX_TYPE_MASK) > -#define RADIX_DAX_SECTOR(entry) (((unsigned long)entry >> RADIX_DAX_SHIFT)) > -#define RADIX_DAX_ENTRY(sector, pmd) ((void *)((unsigned long)sector << \ > - RADIX_DAX_SHIFT | (pmd ? RADIX_DAX_PMD : RADIX_DAX_PTE) | \ > - RADIX_TREE_EXCEPTIONAL_ENTRY)) > - > /* We choose 4096 entries - same as per-zone page wait tables */ > #define DAX_WAIT_TABLE_BITS 12 > #define DAX_WAIT_TABLE_ENTRIES (1 << DAX_WAIT_TABLE_BITS) > diff --git a/include/linux/dax.h b/include/linux/dax.h > index a3dfee4..e9ea78c 100644 > --- a/include/linux/dax.h > +++ b/include/linux/dax.h > @@ -8,8 +8,21 @@ > > struct iomap_ops; > > -/* We use lowest available exceptional entry bit for locking */ > +/* > + * We use lowest available bit in exceptional entry for locking, other two > + * bits to determine entry type. In total 3 special bits. > + */ > +#define RADIX_DAX_SHIFT (RADIX_TREE_EXCEPTIONAL_SHIFT + 3) > #define RADIX_DAX_ENTRY_LOCK (1 << RADIX_TREE_EXCEPTIONAL_SHIFT) > +#define RADIX_DAX_PTE (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 1)) > +#define RADIX_DAX_PMD (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 2)) > +#define RADIX_DAX_TYPE_MASK (RADIX_DAX_PTE | RADIX_DAX_PMD) > +#define RADIX_DAX_TYPE(entry) ((unsigned long)entry & RADIX_DAX_TYPE_MASK) > +#define RADIX_DAX_SECTOR(entry) (((unsigned long)entry >> RADIX_DAX_SHIFT)) > +#define RADIX_DAX_ENTRY(sector, pmd) ((void *)((unsigned long)sector << \ > + RADIX_DAX_SHIFT | (pmd ? RADIX_DAX_PMD : RADIX_DAX_PTE) | \ > + RADIX_TREE_EXCEPTIONAL_ENTRY)) > + > > ssize_t dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter, > struct iomap_ops *ops); > -- > 2.7.4 > > -- Jan Kara SUSE Labs, CR _______________________________________________ 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 mx2.suse.de ([195.135.220.15]:42811 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753342AbcJKSnj (ORCPT ); Tue, 11 Oct 2016 14:43:39 -0400 Date: Tue, 11 Oct 2016 09:23:27 +0200 From: Jan Kara Subject: Re: [PATCH v5 14/17] dax: move RADIX_DAX_* defines to dax.h Message-ID: <20161011072327.GF6952@quack2.suse.cz> References: <1475874544-24842-1-git-send-email-ross.zwisler@linux.intel.com> <1475874544-24842-15-git-send-email-ross.zwisler@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1475874544-24842-15-git-send-email-ross.zwisler@linux.intel.com> Sender: linux-xfs-owner@vger.kernel.org List-ID: List-Id: xfs To: Ross Zwisler Cc: linux-kernel@vger.kernel.org, Theodore Ts'o , Alexander Viro , Andreas Dilger , Andrew Morton , Christoph Hellwig , Dan Williams , Dave Chinner , Jan Kara , Matthew Wilcox , linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-nvdimm@lists.01.org, linux-xfs@vger.kernel.org On Fri 07-10-16 15:09:01, Ross Zwisler wrote: > The RADIX_DAX_* defines currently mostly live in fs/dax.c, with just > RADIX_DAX_ENTRY_LOCK being in include/linux/dax.h so it can be used in > mm/filemap.c. When we add PMD support, though, mm/filemap.c will also need > access to the RADIX_DAX_PTE type so it can properly construct a 4k sized > empty entry. > > Instead of shifting the defines between dax.c and dax.h as they are > individually used in other code, just move them wholesale to dax.h so > they'll be available when we need them. > > Signed-off-by: Ross Zwisler Looks good to me. You can add: Reviewed-by: Jan Kara Honza > --- > fs/dax.c | 14 -------------- > include/linux/dax.h | 15 ++++++++++++++- > 2 files changed, 14 insertions(+), 15 deletions(-) > > diff --git a/fs/dax.c b/fs/dax.c > index 5e8febe..ac3cd05 100644 > --- a/fs/dax.c > +++ b/fs/dax.c > @@ -34,20 +34,6 @@ > #include > #include "internal.h" > > -/* > - * We use lowest available bit in exceptional entry for locking, other two > - * bits to determine entry type. In total 3 special bits. > - */ > -#define RADIX_DAX_SHIFT (RADIX_TREE_EXCEPTIONAL_SHIFT + 3) > -#define RADIX_DAX_PTE (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 1)) > -#define RADIX_DAX_PMD (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 2)) > -#define RADIX_DAX_TYPE_MASK (RADIX_DAX_PTE | RADIX_DAX_PMD) > -#define RADIX_DAX_TYPE(entry) ((unsigned long)entry & RADIX_DAX_TYPE_MASK) > -#define RADIX_DAX_SECTOR(entry) (((unsigned long)entry >> RADIX_DAX_SHIFT)) > -#define RADIX_DAX_ENTRY(sector, pmd) ((void *)((unsigned long)sector << \ > - RADIX_DAX_SHIFT | (pmd ? RADIX_DAX_PMD : RADIX_DAX_PTE) | \ > - RADIX_TREE_EXCEPTIONAL_ENTRY)) > - > /* We choose 4096 entries - same as per-zone page wait tables */ > #define DAX_WAIT_TABLE_BITS 12 > #define DAX_WAIT_TABLE_ENTRIES (1 << DAX_WAIT_TABLE_BITS) > diff --git a/include/linux/dax.h b/include/linux/dax.h > index a3dfee4..e9ea78c 100644 > --- a/include/linux/dax.h > +++ b/include/linux/dax.h > @@ -8,8 +8,21 @@ > > struct iomap_ops; > > -/* We use lowest available exceptional entry bit for locking */ > +/* > + * We use lowest available bit in exceptional entry for locking, other two > + * bits to determine entry type. In total 3 special bits. > + */ > +#define RADIX_DAX_SHIFT (RADIX_TREE_EXCEPTIONAL_SHIFT + 3) > #define RADIX_DAX_ENTRY_LOCK (1 << RADIX_TREE_EXCEPTIONAL_SHIFT) > +#define RADIX_DAX_PTE (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 1)) > +#define RADIX_DAX_PMD (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 2)) > +#define RADIX_DAX_TYPE_MASK (RADIX_DAX_PTE | RADIX_DAX_PMD) > +#define RADIX_DAX_TYPE(entry) ((unsigned long)entry & RADIX_DAX_TYPE_MASK) > +#define RADIX_DAX_SECTOR(entry) (((unsigned long)entry >> RADIX_DAX_SHIFT)) > +#define RADIX_DAX_ENTRY(sector, pmd) ((void *)((unsigned long)sector << \ > + RADIX_DAX_SHIFT | (pmd ? RADIX_DAX_PMD : RADIX_DAX_PTE) | \ > + RADIX_TREE_EXCEPTIONAL_ENTRY)) > + > > ssize_t dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter, > struct iomap_ops *ops); > -- > 2.7.4 > > -- Jan Kara SUSE Labs, CR From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 11 Oct 2016 09:23:27 +0200 From: Jan Kara To: Ross Zwisler Cc: linux-kernel@vger.kernel.org, Theodore Ts'o , Alexander Viro , Andreas Dilger , Andrew Morton , Christoph Hellwig , Dan Williams , Dave Chinner , Jan Kara , Matthew Wilcox , linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-nvdimm@lists.01.org, linux-xfs@vger.kernel.org Subject: Re: [PATCH v5 14/17] dax: move RADIX_DAX_* defines to dax.h Message-ID: <20161011072327.GF6952@quack2.suse.cz> References: <1475874544-24842-1-git-send-email-ross.zwisler@linux.intel.com> <1475874544-24842-15-git-send-email-ross.zwisler@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1475874544-24842-15-git-send-email-ross.zwisler@linux.intel.com> Sender: owner-linux-mm@kvack.org List-ID: On Fri 07-10-16 15:09:01, Ross Zwisler wrote: > The RADIX_DAX_* defines currently mostly live in fs/dax.c, with just > RADIX_DAX_ENTRY_LOCK being in include/linux/dax.h so it can be used in > mm/filemap.c. When we add PMD support, though, mm/filemap.c will also need > access to the RADIX_DAX_PTE type so it can properly construct a 4k sized > empty entry. > > Instead of shifting the defines between dax.c and dax.h as they are > individually used in other code, just move them wholesale to dax.h so > they'll be available when we need them. > > Signed-off-by: Ross Zwisler Looks good to me. You can add: Reviewed-by: Jan Kara Honza > --- > fs/dax.c | 14 -------------- > include/linux/dax.h | 15 ++++++++++++++- > 2 files changed, 14 insertions(+), 15 deletions(-) > > diff --git a/fs/dax.c b/fs/dax.c > index 5e8febe..ac3cd05 100644 > --- a/fs/dax.c > +++ b/fs/dax.c > @@ -34,20 +34,6 @@ > #include > #include "internal.h" > > -/* > - * We use lowest available bit in exceptional entry for locking, other two > - * bits to determine entry type. In total 3 special bits. > - */ > -#define RADIX_DAX_SHIFT (RADIX_TREE_EXCEPTIONAL_SHIFT + 3) > -#define RADIX_DAX_PTE (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 1)) > -#define RADIX_DAX_PMD (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 2)) > -#define RADIX_DAX_TYPE_MASK (RADIX_DAX_PTE | RADIX_DAX_PMD) > -#define RADIX_DAX_TYPE(entry) ((unsigned long)entry & RADIX_DAX_TYPE_MASK) > -#define RADIX_DAX_SECTOR(entry) (((unsigned long)entry >> RADIX_DAX_SHIFT)) > -#define RADIX_DAX_ENTRY(sector, pmd) ((void *)((unsigned long)sector << \ > - RADIX_DAX_SHIFT | (pmd ? RADIX_DAX_PMD : RADIX_DAX_PTE) | \ > - RADIX_TREE_EXCEPTIONAL_ENTRY)) > - > /* We choose 4096 entries - same as per-zone page wait tables */ > #define DAX_WAIT_TABLE_BITS 12 > #define DAX_WAIT_TABLE_ENTRIES (1 << DAX_WAIT_TABLE_BITS) > diff --git a/include/linux/dax.h b/include/linux/dax.h > index a3dfee4..e9ea78c 100644 > --- a/include/linux/dax.h > +++ b/include/linux/dax.h > @@ -8,8 +8,21 @@ > > struct iomap_ops; > > -/* We use lowest available exceptional entry bit for locking */ > +/* > + * We use lowest available bit in exceptional entry for locking, other two > + * bits to determine entry type. In total 3 special bits. > + */ > +#define RADIX_DAX_SHIFT (RADIX_TREE_EXCEPTIONAL_SHIFT + 3) > #define RADIX_DAX_ENTRY_LOCK (1 << RADIX_TREE_EXCEPTIONAL_SHIFT) > +#define RADIX_DAX_PTE (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 1)) > +#define RADIX_DAX_PMD (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 2)) > +#define RADIX_DAX_TYPE_MASK (RADIX_DAX_PTE | RADIX_DAX_PMD) > +#define RADIX_DAX_TYPE(entry) ((unsigned long)entry & RADIX_DAX_TYPE_MASK) > +#define RADIX_DAX_SECTOR(entry) (((unsigned long)entry >> RADIX_DAX_SHIFT)) > +#define RADIX_DAX_ENTRY(sector, pmd) ((void *)((unsigned long)sector << \ > + RADIX_DAX_SHIFT | (pmd ? RADIX_DAX_PMD : RADIX_DAX_PTE) | \ > + RADIX_TREE_EXCEPTIONAL_ENTRY)) > + > > ssize_t dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter, > struct iomap_ops *ops); > -- > 2.7.4 > > -- Jan Kara SUSE Labs, CR -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754187AbcJKSoD (ORCPT ); Tue, 11 Oct 2016 14:44:03 -0400 Received: from mx2.suse.de ([195.135.220.15]:42811 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753342AbcJKSnj (ORCPT ); Tue, 11 Oct 2016 14:43:39 -0400 Date: Tue, 11 Oct 2016 09:23:27 +0200 From: Jan Kara To: Ross Zwisler Cc: linux-kernel@vger.kernel.org, "Theodore Ts'o" , Alexander Viro , Andreas Dilger , Andrew Morton , Christoph Hellwig , Dan Williams , Dave Chinner , Jan Kara , Matthew Wilcox , linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-nvdimm@ml01.01.org, linux-xfs@vger.kernel.org Subject: Re: [PATCH v5 14/17] dax: move RADIX_DAX_* defines to dax.h Message-ID: <20161011072327.GF6952@quack2.suse.cz> References: <1475874544-24842-1-git-send-email-ross.zwisler@linux.intel.com> <1475874544-24842-15-git-send-email-ross.zwisler@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1475874544-24842-15-git-send-email-ross.zwisler@linux.intel.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri 07-10-16 15:09:01, Ross Zwisler wrote: > The RADIX_DAX_* defines currently mostly live in fs/dax.c, with just > RADIX_DAX_ENTRY_LOCK being in include/linux/dax.h so it can be used in > mm/filemap.c. When we add PMD support, though, mm/filemap.c will also need > access to the RADIX_DAX_PTE type so it can properly construct a 4k sized > empty entry. > > Instead of shifting the defines between dax.c and dax.h as they are > individually used in other code, just move them wholesale to dax.h so > they'll be available when we need them. > > Signed-off-by: Ross Zwisler Looks good to me. You can add: Reviewed-by: Jan Kara Honza > --- > fs/dax.c | 14 -------------- > include/linux/dax.h | 15 ++++++++++++++- > 2 files changed, 14 insertions(+), 15 deletions(-) > > diff --git a/fs/dax.c b/fs/dax.c > index 5e8febe..ac3cd05 100644 > --- a/fs/dax.c > +++ b/fs/dax.c > @@ -34,20 +34,6 @@ > #include > #include "internal.h" > > -/* > - * We use lowest available bit in exceptional entry for locking, other two > - * bits to determine entry type. In total 3 special bits. > - */ > -#define RADIX_DAX_SHIFT (RADIX_TREE_EXCEPTIONAL_SHIFT + 3) > -#define RADIX_DAX_PTE (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 1)) > -#define RADIX_DAX_PMD (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 2)) > -#define RADIX_DAX_TYPE_MASK (RADIX_DAX_PTE | RADIX_DAX_PMD) > -#define RADIX_DAX_TYPE(entry) ((unsigned long)entry & RADIX_DAX_TYPE_MASK) > -#define RADIX_DAX_SECTOR(entry) (((unsigned long)entry >> RADIX_DAX_SHIFT)) > -#define RADIX_DAX_ENTRY(sector, pmd) ((void *)((unsigned long)sector << \ > - RADIX_DAX_SHIFT | (pmd ? RADIX_DAX_PMD : RADIX_DAX_PTE) | \ > - RADIX_TREE_EXCEPTIONAL_ENTRY)) > - > /* We choose 4096 entries - same as per-zone page wait tables */ > #define DAX_WAIT_TABLE_BITS 12 > #define DAX_WAIT_TABLE_ENTRIES (1 << DAX_WAIT_TABLE_BITS) > diff --git a/include/linux/dax.h b/include/linux/dax.h > index a3dfee4..e9ea78c 100644 > --- a/include/linux/dax.h > +++ b/include/linux/dax.h > @@ -8,8 +8,21 @@ > > struct iomap_ops; > > -/* We use lowest available exceptional entry bit for locking */ > +/* > + * We use lowest available bit in exceptional entry for locking, other two > + * bits to determine entry type. In total 3 special bits. > + */ > +#define RADIX_DAX_SHIFT (RADIX_TREE_EXCEPTIONAL_SHIFT + 3) > #define RADIX_DAX_ENTRY_LOCK (1 << RADIX_TREE_EXCEPTIONAL_SHIFT) > +#define RADIX_DAX_PTE (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 1)) > +#define RADIX_DAX_PMD (1 << (RADIX_TREE_EXCEPTIONAL_SHIFT + 2)) > +#define RADIX_DAX_TYPE_MASK (RADIX_DAX_PTE | RADIX_DAX_PMD) > +#define RADIX_DAX_TYPE(entry) ((unsigned long)entry & RADIX_DAX_TYPE_MASK) > +#define RADIX_DAX_SECTOR(entry) (((unsigned long)entry >> RADIX_DAX_SHIFT)) > +#define RADIX_DAX_ENTRY(sector, pmd) ((void *)((unsigned long)sector << \ > + RADIX_DAX_SHIFT | (pmd ? RADIX_DAX_PMD : RADIX_DAX_PTE) | \ > + RADIX_TREE_EXCEPTIONAL_ENTRY)) > + > > ssize_t dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter, > struct iomap_ops *ops); > -- > 2.7.4 > > -- Jan Kara SUSE Labs, CR