Skip to content

Commit

Permalink
[PATCH] radix_tag_get(): differentiate between no present node and ta…
Browse files Browse the repository at this point in the history
…g 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 <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Marcelo Tosatti authored and Linus Torvalds committed Sep 7, 2005
1 parent 201b626 commit 32605a1
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions lib/radix-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 32605a1

Please sign in to comment.