Skip site navigation (1)Skip section navigation (2)
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>