diff options
| author | Steve French <sfrench@us.ibm.com> | 2006-02-18 10:07:18 -0500 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2006-02-18 10:07:18 -0500 |
| commit | e601ef22bc5ec9332c8d785533895ee81c834b8a (patch) | |
| tree | 4685a666fe2a553dccdfe7b4b3f88816d075b29e /lib | |
| parent | 27754b34600770beb38e3ae12cb3f345f02e3797 (diff) | |
| parent | bd71c2b17468a2531fb4c81ec1d73520845e97e1 (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/radix-tree.c | 10 |
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) | |||
| 752 | */ | 752 | */ |
| 753 | nr_cleared_tags = 0; | 753 | nr_cleared_tags = 0; |
| 754 | for (tag = 0; tag < RADIX_TREE_TAGS; tag++) { | 754 | for (tag = 0; tag < RADIX_TREE_TAGS; tag++) { |
| 755 | tags[tag] = 1; | ||
| 755 | if (tag_get(pathp->node, tag, pathp->offset)) { | 756 | if (tag_get(pathp->node, tag, pathp->offset)) { |
| 756 | tag_clear(pathp->node, tag, pathp->offset); | 757 | tag_clear(pathp->node, tag, pathp->offset); |
| 757 | tags[tag] = 0; | 758 | if (!any_tag_set(pathp->node, tag)) { |
| 758 | nr_cleared_tags++; | 759 | tags[tag] = 0; |
| 759 | } else | 760 | nr_cleared_tags++; |
| 760 | tags[tag] = 1; | 761 | } |
| 762 | } | ||
| 761 | } | 763 | } |
| 762 | 764 | ||
| 763 | for (pathp--; nr_cleared_tags && pathp->node; pathp--) { | 765 | for (pathp--; nr_cleared_tags && pathp->node; pathp--) { |
