Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 32605a18 authored by Marcelo Tosatti's avatar Marcelo Tosatti Committed by Linus Torvalds
Browse files

[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: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 201b6264
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -423,10 +423,11 @@ EXPORT_SYMBOL(radix_tree_tag_clear);
 * @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;