From: Li Shaohua Signed-off-by: Li Shaohua Signed-off-by: Andrew Morton --- 25-akpm/lib/idr.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) diff -puN lib/idr.c~idr-missed-unlock lib/idr.c --- 25/lib/idr.c~idr-missed-unlock Fri Sep 17 16:05:13 2004 +++ 25-akpm/lib/idr.c Fri Sep 17 16:05:13 2004 @@ -39,8 +39,10 @@ static struct idr_layer *alloc_layer(str struct idr_layer *p; spin_lock(&idp->lock); - if (!(p = idp->id_free)) + if (!(p = idp->id_free)) { + spin_unlock(&idp->lock); return NULL; + } idp->id_free = p->ary[0]; idp->id_free_cnt--; p->ary[0] = NULL; _