From owner-cvs-src-old@FreeBSD.ORG Thu Jul 9 19:00:52 2009 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 E12E51065673 for ; Thu, 9 Jul 2009 19:00:52 +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 CCD3A8FC0A for ; Thu, 9 Jul 2009 19:00:52 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n69J0qrX077725 for ; Thu, 9 Jul 2009 19:00:52 GMT (envelope-from rmacklem@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n69J0qZj077724 for cvs-src-old@freebsd.org; Thu, 9 Jul 2009 19:00:52 GMT (envelope-from rmacklem@repoman.freebsd.org) Message-Id: <200907091900.n69J0qZj077724@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to rmacklem@repoman.freebsd.org using -f From: Rick Macklem Date: Thu, 9 Jul 2009 19:00:29 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/fs/nfs nfs_var.h src/sys/fs/nfsclient nfs_clrpcops.c 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: Thu, 09 Jul 2009 19:00:53 -0000 rmacklem 2009-07-09 19:00:29 UTC FreeBSD src repository Modified files: sys/fs/nfs nfs_var.h sys/fs/nfsclient nfs_clrpcops.c nfs_clstate.c Log: SVN rev 195510 on 2009-07-09 19:00:29Z by rmacklem Since the nfscl_getclose() function both decremented open counts and, optionally, created a separate list of NFSv4 opens to be closed, it was possible for the associated OpenOwner to be free'd before the Open was closed. The problem was that the Open was taken off the OpenOwner list before the Close RPC was done and OpenOwners can be free'd once the list is empty. This patch separates out the case of doing the Close RPC into a separate function called nfscl_doclose() and simplifies nfsrpc_doclose() so that it closes a single open instead of a list of them. This avoids removing the Open from the OpenOwner list before doing the Close RPC. Approved by: re (kensmith), kib (mentor) Revision Changes Path 1.6 +3 -1 src/sys/fs/nfs/nfs_var.h 1.3 +80 -84 src/sys/fs/nfsclient/nfs_clrpcops.c 1.6 +96 -99 src/sys/fs/nfsclient/nfs_clstate.c