Date: Mon, 18 Oct 2010 19:06:46 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/nfsclient nfs.h nfs_bio.c nfs_nfsiod.c nfsnode.h Message-ID: <201010181907.o9IJ70PX019538@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
kib 2010-10-18 19:06:46 UTC FreeBSD src repository Modified files: sys/nfsclient nfs.h nfs_bio.c nfs_nfsiod.c nfsnode.h Log: SVN rev 214026 on 2010-10-18 19:06:46Z by kib 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 Revision Changes Path 1.113 +1 -1 src/sys/nfsclient/nfs.h 1.188 +9 -17 src/sys/nfsclient/nfs_bio.c 1.99 +37 -58 src/sys/nfsclient/nfs_nfsiod.c 1.71 +1 -4 src/sys/nfsclient/nfsnode.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201010181907.o9IJ70PX019538>