summaryrefslogtreecommitdiffstats
path: root/lib/radix-tree.c
diff options
context:
space:
mode:
authorKumar Gala <galak@kernel.crashing.org>2006-02-28 11:25:22 -0600
committerKumar Gala <galak@kernel.crashing.org>2006-02-28 11:25:22 -0600
commit9585da3729e7e27bf22818625c10ac6c64ebb609 (patch)
tree8c8d46f7f2cc933fdf75a6a75cf593a63f7b8717 /lib/radix-tree.c
parent8080d5497146d5d27d9e8e78229d1adc7fe280cf (diff)
parent6749c5507388f3fc3719f57a54b540ee83f6661a (diff)
downloadblackbird-op-linux-9585da3729e7e27bf22818625c10ac6c64ebb609.tar.gz
blackbird-op-linux-9585da3729e7e27bf22818625c10ac6c64ebb609.zip
Merge branch 'master' of git+ssh://galak@master.kernel.org/pub/scm/linux/kernel/git/galak/powerpc
Diffstat (limited to 'lib/radix-tree.c')
-rw-r--r--lib/radix-tree.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/radix-tree.c b/lib/radix-tree.c
index c0bd4a914803..1e5b17dc7e3d 100644
--- a/lib/radix-tree.c
+++ b/lib/radix-tree.c
@@ -752,12 +752,14 @@ void *radix_tree_delete(struct radix_tree_root *root, unsigned long index)
*/
nr_cleared_tags = 0;
for (tag = 0; tag < RADIX_TREE_TAGS; tag++) {
+ tags[tag] = 1;
if (tag_get(pathp->node, tag, pathp->offset)) {
tag_clear(pathp->node, tag, pathp->offset);
- tags[tag] = 0;
- nr_cleared_tags++;
- } else
- tags[tag] = 1;
+ if (!any_tag_set(pathp->node, tag)) {
+ tags[tag] = 0;
+ nr_cleared_tags++;
+ }
+ }
}
for (pathp--; nr_cleared_tags && pathp->node; pathp--) {
OpenPOWER on IntegriCloud