From: Marcelo Tosatti Date: Tue, 6 Sep 2005 22:16:48 +0000 (-0700) Subject: [PATCH] radix_tag_get(): differentiate between no present node and tag unset cases X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=32605a18152b246df483fadc1c23854addde8755;p=openwrt%2Fstaging%2Fblogic.git [PATCH] radix_tag_get(): differentiate between no present node and tag unset cases Simple patch to radix_tree_tag_get() to return different values for non present node and tag unset. The function is not used by any in-kernel callers (yet), but this information is definitely useful. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/lib/radix-tree.c b/lib/radix-tree.c index 2e9bd54beba4..b972dd29289d 100644 --- a/lib/radix-tree.c +++ b/lib/radix-tree.c @@ -418,15 +418,16 @@ EXPORT_SYMBOL(radix_tree_tag_clear); #ifndef __KERNEL__ /* Only the test harness uses this at present */ /** - * radix_tree_tag_get - get a tag on a radix tree node - * @root: radix tree root - * @index: index key - * @tag: tag index + * radix_tree_tag_get - get a tag on a radix tree node + * @root: radix tree root + * @index: index key + * @tag: tag index * - * Return the search tag corresponging to @index in the radix tree. + * Return values: * - * Returns zero if the tag is unset, or if there is no corresponding item - * in the tree. + * 0: tag not present + * 1: tag present, set + * -1: tag present, unset */ int radix_tree_tag_get(struct radix_tree_root *root, unsigned long index, int tag) @@ -460,7 +461,7 @@ int radix_tree_tag_get(struct radix_tree_root *root, int ret = tag_get(slot, tag, offset); BUG_ON(ret && saw_unset_tag); - return ret; + return ret ? 1 : -1; } slot = slot->slots[offset]; shift -= RADIX_TREE_MAP_SHIFT;