No description
Find a file
Thomas Veerman 7d02ecdbb4 VFS: set w_task only when needed
It was always set, but not always cleared, when talking to asynchronous
drivers. This could cause erratic behavior upon a driver crash.

Normally, a worker thread's w_task field is set when it's about to
communicate with a driver or FS. Then upon receiving a reply we can
do sanity checks (that the thread we want to wake up was actually
waiting for a reply). Also, when a driver/FS crashes, we can identify
which worker threads were talking to the crashed endpoint and handle
the error gracefully.

Asynchronous drivers are a bit special, though. In most cases, the
sender of the request is not interested in the reply (the sender was
suspended and only wants to know whether the request was successfully
caried out or not). However, the open request is special, as the reply
carries information needed by the sender. This is the only request
where a worker thread actually yields and waits for the result. This is
also the only case where we're interested in setting w_task for
asynchronous drivers.

Change-Id: Ia1ce2747937df376122b5e13b6a069de27fcc379
2014-02-18 11:25:02 +01:00
benchmarks Removing obsolete _MINIX define 2013-02-26 09:44:20 +00:00
bin Import NetBSD df(1) 2014-02-18 11:25:02 +01:00
commands Import NetBSD df(1) 2014-02-18 11:25:02 +01:00
common a bit more -Werror compatability 2013-08-20 11:37:40 +02:00
dist/nvi Termcap update, replacing elvis by nvi. 2013-01-24 07:44:38 +01:00
distrib Import NetBSD df(1) 2014-02-18 11:25:02 +01:00
docs Allow install of binutils and import texinfo 2013-07-12 14:18:08 +02:00
drivers ABI Break: aligning struct termios 2014-02-18 11:25:01 +01:00
etc arm-refactor:use sysenv board to determine what driver to start. 2014-01-20 09:33:41 +01:00
external Fix some unintialized variables with -O3 2013-10-08 11:45:49 +02:00
gnu Prevent make -C gnu from installing files in / 2013-09-17 15:19:50 +02:00
include Removing CSU patches 2014-02-18 11:25:02 +01:00
kernel Removing CSU patches 2014-02-18 11:25:02 +01:00
lib Removing CSU patches 2014-02-18 11:25:02 +01:00
libexec increase -Werror resilience 2013-08-21 13:53:39 +02:00
man Import NetBSD df(1) 2014-02-18 11:25:02 +01:00
releasetools Import NetBSD df(1) 2014-02-18 11:25:02 +01:00
sbin Enable getmntinfo(3) 2014-02-18 11:25:02 +01:00
servers VFS: set w_task only when needed 2014-02-18 11:25:02 +01:00
share fix sysroot clang 2014-02-18 11:25:01 +01:00
sys Remove support for obsolete 3.2.1 ABI 2014-02-18 11:25:02 +01:00
test Removing CSU patches 2014-02-18 11:25:02 +01:00
tests Importing usr.bin/id 2013-11-12 10:15:47 -05:00
tools x86_hdimage.sh -i: crossbuild x86 release CD 2013-11-07 13:44:22 +00:00
usr.bin usr.bin/stat Update 2014-02-18 11:25:01 +01:00
usr.sbin mkfs.mfs, mkproto: minor features 2013-11-19 15:58:05 +00:00
.gitignore gitignore: ignore some more generated files 2012-12-06 13:29:20 +00:00
.gitreview misc:Add gerrit code review support. 2013-01-16 09:44:16 +01:00
build.sh Reverting back to default value of MKARZERO 2013-01-17 10:03:58 +01:00
LICENSE Fix parameter parsing in cut 2010-01-21 10:16:05 +00:00
Makefile Importing NetBSD "Kyua" test framework 2013-07-23 20:43:41 +02:00