From 684f787474561bb28e1217c5ae2d897aa80e1d87 Mon Sep 17 00:00:00 2001 From: behlendo Date: Tue, 3 Jun 2008 20:58:55 +0000 Subject: [PATCH] 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 --- modules/splat/splat-atomic.c | 4 ++-- modules/splat/splat-vnode.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/splat/splat-atomic.c b/modules/splat/splat-atomic.c index 4de5ef033a..05afdb64b2 100644 --- a/modules/splat/splat-atomic.c +++ b/modules/splat/splat-atomic.c @@ -110,7 +110,7 @@ splat_atomic_work(void *priv) atomic_sub_64_nv(&ap->ap_atomic, 5); break; 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, &ap, 0, &p0, TS_RUN, minclsyspri); - BUG_ON(thr == NULL); + ASSERT(thr); /* Prepare to wait, the new thread will wake us once it * has made a copy of the unique private passed data */ diff --git a/modules/splat/splat-vnode.c b/modules/splat/splat-vnode.c index a72dac94b0..6f97503880 100644 --- a/modules/splat/splat-vnode.c +++ b/modules/splat/splat-vnode.c @@ -374,6 +374,7 @@ fd_uninstall(int fd) * case I think that's reasonable. */ spin_unlock(&files->file_lock); put_unused_fd(fd); + return 0; out_unlock: spin_unlock(&files->file_lock);