From owner-cvs-src-old@FreeBSD.ORG Mon Jul 18 21:04:59 2011 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6A7811065674 for ; Mon, 18 Jul 2011 21:04:59 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 595F28FC13 for ; Mon, 18 Jul 2011 21:04:59 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p6IL4xoC002006 for ; Mon, 18 Jul 2011 21:04:59 GMT (envelope-from rmacklem@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p6IL4xZN002005 for cvs-src-old@freebsd.org; Mon, 18 Jul 2011 21:04:59 GMT (envelope-from rmacklem@repoman.freebsd.org) Message-Id: <201107182104.p6IL4xZN002005@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to rmacklem@repoman.freebsd.org using -f From: Rick Macklem Date: Mon, 18 Jul 2011 21:04:35 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_8 Subject: cvs commit: src/sys/fs/nfsclient nfs_clstate.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jul 2011 21:04:59 -0000 rmacklem 2011-07-18 21:04:35 UTC FreeBSD src repository Modified files: (Branch: RELENG_8) sys/fs/nfsclient nfs_clstate.c Log: SVN rev 224203 on 2011-07-18 21:04:35Z by rmacklem MFC: r223774 The algorithm used by nfscl_getopen() could have resulted in multiple instances of the same lock_owner when a process both inherited an open file descriptor plus opened the same file itself. Since some NFSv4 servers cannot handle multiple instances of the same lock_owner string, this patch changes the algorithm used by nfscl_getopen() in the new NFSv4 client to keep that from happening. The new algorithm is simpler, since there is no longer any need to ascend the process's parentage tree because all NFSv4 Closes for a file are done at VOP_INACTIVE()/VOP_RECLAIM(), making the Opens indistinct w.r.t. use with Lock Ops. This problem was discovered at the recent NFSv4 interoperability Bakeathon. Revision Changes Path 1.7.2.18 +94 -81 src/sys/fs/nfsclient/nfs_clstate.c