idr: fix idr_remove()
The return inside the loop makes us free only a single layer. Signed-off-by: Nadia Derbey <Nadia.Derbey@bull.net> Cc: "Paul E. McKenney" <paulmck@us.ibm.com> Cc: Manfred Spraul <manfred@colorfullife.com> Cc: Jim Houston <jim.houston@comcast.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
7793bfcfcc
Коммит
af8e2a4cb9
|
@ -385,8 +385,8 @@ void idr_remove(struct idr *idp, int id)
|
|||
while (idp->id_free_cnt >= IDR_FREE_MAX) {
|
||||
p = alloc_layer(idp);
|
||||
kmem_cache_free(idr_layer_cache, p);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
EXPORT_SYMBOL(idr_remove);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче