DragonFly commits List (threaded) for 2011-02
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
git: kernel - Fix list corruption in dsched
commit 0b81692c192f8106f3048aff53e3f6f77731d565
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date: Sat Feb 12 13:30:16 2011 -0800
kernel - Fix list corruption in dsched
* dsched_thread_ctx_alloc() was not acquiring the global lock across
calls to dsched_thread_io_alloc(), creating a race condition in the
call to TAILQ_INSERT_TAIL(&tdio->diskctx->tdio_list, ...).
This case can occur under heavy fork/exit loads, particularly when
(soon) fork and exit get out from the MP lock, but even with the MP
lock on the frontend it can occur against the dsched backend.
* dsched_new_policy_thread_tdio() was not acquiring the global lock
across its initial call to dsched_thread_io_alloc(). This case could
only occur with extreme rarity.
Summary of changes:
sys/kern/kern_dsched.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/0b81692c192f8106f3048aff53e3f6f77731d565
--
DragonFly BSD source repository
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]