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:
parent
fe81cb1c43
commit
684f787474
|
@ -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 */
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue