Message ID | 1468997731-2155-1-git-send-email-ross.zwisler@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Jul 20, 2016 at 12:55:31AM -0600, Ross Zwisler wrote: > The bottom two bits of radix tree entries are reserved for special use by > the radix tree code itself. A comment detailing their usage was added by: > > commit 3bcadd6fa6c4 ("radix-tree: free up the bottom bit of exceptional > entries for reuse") > > This comment states that if the bottom two bits are '11', this means that > this is a locked exceptional entry. > > It turns out that this bit combination was never actually used. Radix tree > locking for DAX was indeed implemented, but it actually used the third LSB: > > /* We use lowest available exceptional entry bit for locking */ > #define RADIX_DAX_ENTRY_LOCK (1 << RADIX_TREE_EXCEPTIONAL_SHIFT) > > This locking code was also made specific to the DAX code instead of being > generally implemented in radix-tree.h. > > So, fix the comment. > > Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
diff --git a/include/linux/radix-tree.h b/include/linux/radix-tree.h index cb4b7e8..f0fb327 100644 --- a/include/linux/radix-tree.h +++ b/include/linux/radix-tree.h @@ -35,7 +35,7 @@ * 00 - data pointer * 01 - internal entry * 10 - exceptional entry - * 11 - locked exceptional entry + * 11 - this bit combination is currently unused/reserved * * The internal entry may be a pointer to the next level in the tree, a * sibling entry, or an indicator that the entry in this slot has been moved
The bottom two bits of radix tree entries are reserved for special use by the radix tree code itself. A comment detailing their usage was added by: commit 3bcadd6fa6c4 ("radix-tree: free up the bottom bit of exceptional entries for reuse") This comment states that if the bottom two bits are '11', this means that this is a locked exceptional entry. It turns out that this bit combination was never actually used. Radix tree locking for DAX was indeed implemented, but it actually used the third LSB: /* We use lowest available exceptional entry bit for locking */ #define RADIX_DAX_ENTRY_LOCK (1 << RADIX_TREE_EXCEPTIONAL_SHIFT) This locking code was also made specific to the DAX code instead of being generally implemented in radix-tree.h. So, fix the comment. Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com> --- include/linux/radix-tree.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)