Date: Thu, 9 Jul 2009 19:00:29 +0000 (UTC) From: Rick Macklem <rmacklem@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/fs/nfs nfs_var.h src/sys/fs/nfsclient nfs_clrpcops.c nfs_clstate.c Message-ID: <200907091900.n69J0qZj077724@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907091900.n69J0qZj077724>