From owner-cvs-all@FreeBSD.ORG Wed Sep 13 18:39:10 2006 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C7EA716A403; Wed, 13 Sep 2006 18:39:10 +0000 (UTC) (envelope-from mohans@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8E9A343D55; Wed, 13 Sep 2006 18:39:10 +0000 (GMT) (envelope-from mohans@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k8DIdA4l039370; Wed, 13 Sep 2006 18:39:10 GMT (envelope-from mohans@repoman.freebsd.org) Received: (from mohans@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k8DIdA1Z039369; Wed, 13 Sep 2006 18:39:10 GMT (envelope-from mohans) Message-Id: <200609131839.k8DIdA1Z039369@repoman.freebsd.org> From: Mohan Srinivasan Date: Wed, 13 Sep 2006 18:39:09 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: 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 X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Sep 2006 18:39:10 -0000 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