Index: gc.c =================================================================== RCS file: /cvs/ecos/ecos/packages/fs/jffs2/current/src/gc.c,v retrieving revision 1.7 diff -w -u -r1.7 gc.c --- gc.c 1 Apr 2004 03:17:57 -0000 1.7 +++ gc.c 19 Jul 2004 12:54:18 -0000 @@ -358,10 +358,10 @@ spin_unlock(&c->inocache_lock); f = jffs2_gc_fetch_inode(c, inum, nlink); - if (IS_ERR(f)) - return PTR_ERR(f); - if (!f) - return 0; + if (!f||IS_ERR(f)) { + up(&c->alloc_sem); + return f; + } ret = jffs2_garbage_collect_live(c, jeb, raw, f);