David Woodhouse
1975e59375
[RBTREE] Remove dead code in rb_erase()
...
Observe rb_erase(), when the victim node 'old' has two children so
neither of the simple cases at the beginning are taken.
Observe that it effectively does an 'rb_next()' operation to find the
next (by value) node in the tree. That is; we go to the victim's
right-hand child and then follow left-hand pointers all the way
down the tree as far as we can until we find the next node 'node'. We
end up with 'node' being either the same immediate right-hand child of
'old', or one of its descendants on the far left-hand side.
For a start, we _know_ that 'node' has a parent. We can drop that check.
We also know that if 'node's parent is 'old', then 'node' is the
right-hand child of its parent. And that if 'node's parent is _not_
'old', then 'node' is the left-hand child of its parent.
So instead of checking for 'node->rb_parent == old' in one place and
also checking 'node's heritage separately when we're trying to change
its link from its parent, we can shuffle things around a bit and do
it like this...
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2006-04-21 13:30:36 +01:00
..
reed_solomon
[PATCH] sem2mutex: kernel/
2006-03-23 07:38:10 -08:00
zlib_deflate
[PATCH] lib/zlib*: cleanups
2006-01-10 08:01:57 -08:00
zlib_inflate
[PATCH] lib/zlib*: cleanups
2006-01-10 08:01:57 -08:00
.gitignore
Add some basic .gitignore files
2005-10-18 08:26:15 -07:00
bitmap.c
[PATCH] bitops: hweight() related cleanup
2006-03-26 08:57:15 -08:00
bust_spinlocks.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
cmdline.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
cpumask.c
[PATCH] cpumask: uninline any_online_cpu()
2006-03-25 08:23:00 -08:00
crc-ccitt.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
crc16.c
[PATCH] lib/crc16: added crc16 algorithm.
2005-09-08 14:41:27 -07:00
crc32.c
[PATCH] crc32.c typo fix
2005-08-07 10:00:40 -07:00
crc32defs.h
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
ctype.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
dec_and_lock.c
[PATCH] atomic: dec_and_lock use atomic primitives
2006-01-08 20:13:48 -08:00
div64.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
dump_stack.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
errno.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
extable.c
[PATCH] powerpc: trivial: modify comments to refer to new location of files
2006-02-10 16:53:51 +11:00
find_next_bit.c
[PATCH] bitops: generic ext2_{set,clear,test,find_first_zero,find_next_zero}_bit()
2006-03-26 08:57:11 -08:00
gen_crc32table.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
genalloc.c
[PATCH] fix broken lib/genalloc.c
2005-11-28 14:42:23 -08:00
halfmd4.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
hweight.c
[PATCH] bitops: hweight() speedup
2006-03-26 08:59:30 -08:00
idr.c
[PATCH] Whitespace and CodingStyle cleanup for lib/idr.c
2005-10-30 17:37:19 -08:00
inflate.c
[PATCH] Update in-kernel zlib routines
2005-08-05 16:23:21 -07:00
int_sqrt.c
[PATCH] lib: Fix bug in int_sqrt() for 64 bit longs
2006-02-03 08:32:08 -08:00
iomap.c
[PATCH] add Big Endian variants of ioread/iowrite
2005-04-16 15:25:54 -07:00
iomap_copy.c
[PATCH] iomap_copy fallout (m68k)
2006-02-18 16:30:40 -05:00
Kconfig
[PATCH] lib/crc16: added crc16 algorithm.
2005-09-08 14:41:27 -07:00
Kconfig.debug
[PATCH] Kconfig.debug: Set DEBUG_MUTEX to off by default
2006-04-19 09:13:51 -07:00
kernel_lock.c
[PATCH] spinlock consolidation
2005-09-10 10:06:21 -07:00
klist.c
[PATCH] klist: Fix broken kref counting in find functions
2006-01-04 16:18:08 -08:00
kobject.c
[PATCH] sysfs: Allow sysfs attribute files to be pollable
2006-04-14 11:41:24 -07:00
kobject_uevent.c
[PATCH] kobject: fix build error if CONFIG_SYSFS=n
2006-03-20 13:42:57 -08:00
kref.c
[PATCH] kref: avoid an atomic operation in kref_put()
2006-03-20 13:42:57 -08:00
libcrc32c.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
Makefile
[PATCH] bitops: generic hweight{64,32,16,8}()
2006-03-26 08:57:11 -08:00
parser.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
prio_tree.c
Linux-2.6.12-rc2
2005-04-16 15:20:36 -07:00
radix-tree.c
[PATCH] radix-tree documentation cleanups
2006-03-25 08:22:59 -08:00
rbtree.c
[RBTREE] Remove dead code in rb_erase()
2006-04-21 13:30:36 +01:00
rwsem-spinlock.c
[PATCH] use smp_mb/wmb/rmb where possible
2005-05-01 08:58:47 -07:00
rwsem.c
[PATCH] use smp_mb/wmb/rmb where possible
2005-05-01 08:58:47 -07:00
semaphore-sleepers.c
[PATCH] unify x86/x86-64 semaphore code
2005-09-05 00:06:14 -07:00
sha1.c
[PATCH] lib/sha1.c: fix sparse warning
2005-06-25 16:25:02 -07:00
smp_processor_id.c
[PATCH] fix missing includes
2005-10-30 17:37:32 -08:00
sort.c
[PATCH] fix missing includes
2005-10-30 17:37:32 -08:00
spinlock_debug.c
[PATCH] Fix spinlock debugging delays to not time out too early
2006-02-07 16:12:33 -08:00
string.c
[PATCH] Silence a const vs non-const warning
2006-04-11 06:18:42 -07:00
swiotlb.c
BUG_ON() Conversion in lib/swiotlb.c
2006-03-24 18:47:11 +01:00
textsearch.c
[PATCH] gfp_t: lib/*
2005-10-28 08:16:47 -07:00
ts_bm.c
[TEXTSEARCH]: Fix broken good shift array calculation in Boyer-Moore
2006-02-02 17:15:41 -08:00
ts_fsm.c
[PATCH] gfp flags annotations - part 1
2005-10-08 15:00:57 -07:00
ts_kmp.c
[PATCH] gfp flags annotations - part 1
2005-10-08 15:00:57 -07:00
vsprintf.c
[PATCH] fix missing includes
2005-10-30 17:37:32 -08:00