cvs commit: src/sys/kern vfs_lookup.c src/sys/nfs4client nfs4_vfsops.c nfs4_vnops.c src/sys/nfsclient nfs_node.c nfs_subs.c nfs_vfsops.c nfs_vnops.c nfsnode.h src/sys/sys mount.h

Mohan Srinivasan mohans at FreeBSD.org
Wed Sep 13 11:39:10 PDT 2006


mohans      2006-09-13 18:39:09 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             vfs_lookup.c 
    sys/nfs4client       nfs4_vfsops.c nfs4_vnops.c 
    sys/nfsclient        nfs_node.c nfs_subs.c nfs_vfsops.c 
                         nfs_vnops.c nfsnode.h 
    sys/sys              mount.h 
  Log:
  Fixes up the handling of shared vnode lock lookups in the NFS client,
  adds a FS type specific flag indicating that the FS supports shared
  vnode lock lookups, adds some logic in vfs_lookup.c to test this flag
  and set lock flags appropriately.
  
  - amd on 6.x is a non-starter (without this change). Using amd under
    heavy load results in a deadlock (with cascading vnode locks all the
    way to the root) very quickly.
  - This change should also fix the more general problem of cascading
    vnode deadlocks when an NFS server goes down.
  
  Ideally, we wouldn't need these changes, as enabling shared vnode lock
  lookups globally would work. Unfortunately, UFS, for example isn't
  ready for shared vnode lock lookups, crashing pretty quickly.
  
  This change is the result of discussions with Stephan Uphoff (ups@).
  
  Reviewed by:    ups@
  
  Revision  Changes    Path
  1.94      +23 -7     src/sys/kern/vfs_lookup.c
  1.26      +2 -2      src/sys/nfs4client/nfs4_vfsops.c
  1.34      +6 -6      src/sys/nfs4client/nfs4_vnops.c
  1.82      +3 -3      src/sys/nfsclient/nfs_node.c
  1.144     +1 -1      src/sys/nfsclient/nfs_subs.c
  1.186     +4 -4      src/sys/nfsclient/nfs_vfsops.c
  1.268     +5 -5      src/sys/nfsclient/nfs_vnops.c
  1.59      +1 -1      src/sys/nfsclient/nfsnode.h
  1.211     +1 -0      src/sys/sys/mount.h


More information about the cvs-src mailing list