Fix missing return resulting in a double unlock of &files->file_lock

and a hang on subsequent sys_close.  I'm not quite sure why the Fedora
kernel caught this bug the Chaos kernel did not, but I'm glad!

Convert remaining BUG_ON's to ASSERTs



git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@122 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
This commit is contained in:
behlendo 2008-06-03 20:58:55 +00:00
parent fe81cb1c43
commit 684f787474
2 changed files with 3 additions and 2 deletions

View File

@ -110,7 +110,7 @@ splat_atomic_work(void *priv)
atomic_sub_64_nv(&ap->ap_atomic, 5); atomic_sub_64_nv(&ap->ap_atomic, 5);
break; break;
default: default:
BUG_ON(1); SBUG();
} }
} }
@ -153,7 +153,7 @@ splat_atomic_test1(struct file *file, void *arg)
thr = (kthread_t *)thread_create(NULL, 0, splat_atomic_work, thr = (kthread_t *)thread_create(NULL, 0, splat_atomic_work,
&ap, 0, &p0, TS_RUN, &ap, 0, &p0, TS_RUN,
minclsyspri); minclsyspri);
BUG_ON(thr == NULL); ASSERT(thr);
/* Prepare to wait, the new thread will wake us once it /* Prepare to wait, the new thread will wake us once it
* has made a copy of the unique private passed data */ * has made a copy of the unique private passed data */

View File

@ -374,6 +374,7 @@ fd_uninstall(int fd)
* case I think that's reasonable. */ * case I think that's reasonable. */
spin_unlock(&files->file_lock); spin_unlock(&files->file_lock);
put_unused_fd(fd); put_unused_fd(fd);
return 0;
out_unlock: out_unlock:
spin_unlock(&files->file_lock); spin_unlock(&files->file_lock);