Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Dec 2004 18:52:28 +0000 (UTC)
From:      Paul Saab <ps@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/nfsclient nfs_bio.c nfs_node.c nfs_vnops.c nfsnode.h
Message-ID:  <200412061852.iB6IqSGV000126@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
ps          2004-12-06 18:52:28 UTC

  FreeBSD src repository

  Modified files:
    sys/nfsclient        nfs_bio.c nfs_node.c nfs_vnops.c 
                         nfsnode.h 
  Log:
  Serialize NFS vinvalbuf operations by acquiring/upgrading to the
  vnode EXCLUSIVE lock. This prevents threads from adding pages to
  the vnode while an invalidation is in progress, closing potential
  races. In the bioread() path, callers acquire the SHARED vnode lock
  - so while an invalidate was in progress, it was possible to fault
  in new pages onto the vnode causing the invalidation to take a while
  or fail. We saw these races at Yahoo! with very large files+heavy
  concurrent access. Forcing an upgrade to EXCLUSIVE lock before doing
  the invalidation closes all these races.
  
  Submitted by:   Mohan Srinivasan mohans at yahoo-inc dot com
  
  Revision  Changes    Path
  1.141     +23 -26    src/sys/nfsclient/nfs_bio.c
  1.70      +1 -1      src/sys/nfsclient/nfs_node.c
  1.235     +0 -2      src/sys/nfsclient/nfs_vnops.c
  1.49      +0 -2      src/sys/nfsclient/nfsnode.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200412061852.iB6IqSGV000126>