diff options
author | kib <kib@FreeBSD.org> | 2010-10-18 19:06:46 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2010-10-18 19:06:46 +0000 |
commit | 9aa04c0151c0a6e6d7fc6201e5367f109dfac1dd (patch) | |
tree | 1476a9a48c03cdc13771624d2bc864aaa56334dc /lib/libc/stdio/setvbuf.c | |
parent | ce878940358e064934cf32c83917ab296594fe75 (diff) | |
download | FreeBSD-src-9aa04c0151c0a6e6d7fc6201e5367f109dfac1dd.zip FreeBSD-src-9aa04c0151c0a6e6d7fc6201e5367f109dfac1dd.tar.gz |
Do not synchronously start the nfsiod threads at all. The r212506
fixed the issues with file descriptor locks, but the same problems are
present for vnode lock/user map lock.
If the nfs_asyncio() cannot find the free nfsiod, schedule task to
create new nfsiod and return error. This causes fall back to the
synchronous i/o for nfs_strategy(), or does not start read at all in
the case of readahead. The caller that holds vnode and potentially
user map lock does not wait for kproc_create() to finish, preventing
the LORs.
The change effectively reverts r203072, because we never hand off the
request to newly created nfsiod thread anymore.
Reviewed by: jhb
Tested by: jhb, pluknet
MFC after: 3 weeks
Diffstat (limited to 'lib/libc/stdio/setvbuf.c')
0 files changed, 0 insertions, 0 deletions