From owner-svn-src-projects@FreeBSD.ORG Sun Feb 5 01:57:31 2012 Return-Path: <owner-svn-src-projects@FreeBSD.ORG> Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D18AF106564A; Sun, 5 Feb 2012 01:57:31 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BBF528FC14; Sun, 5 Feb 2012 01:57:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q151vVHd061258; Sun, 5 Feb 2012 01:57:31 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q151vVqm061253; Sun, 5 Feb 2012 01:57:31 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201202050157.q151vVqm061253@svn.freebsd.org> From: Rick Macklem <rmacklem@FreeBSD.org> Date: Sun, 5 Feb 2012 01:57:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231004 - in projects/nfsv4.1-client/sys/fs: nfs nfsclient X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sun, 05 Feb 2012 01:57:32 -0000 Author: rmacklem Date: Sun Feb 5 01:57:31 2012 New Revision: 231004 URL: http://svn.freebsd.org/changeset/base/231004 Log: Add some fields to the nfsclds structure to store the NFSv4.1 write verifier for the DS. Also, initialize and destroy the mutex that is added. Modified: projects/nfsv4.1-client/sys/fs/nfs/nfsclstate.h projects/nfsv4.1-client/sys/fs/nfs/nfsport.h projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clstate.c Modified: projects/nfsv4.1-client/sys/fs/nfs/nfsclstate.h ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfs/nfsclstate.h Sun Feb 5 00:51:59 2012 (r231003) +++ projects/nfsv4.1-client/sys/fs/nfs/nfsclstate.h Sun Feb 5 01:57:31 2012 (r231004) @@ -73,8 +73,11 @@ struct nfsclsession { * This structure holds the information used to access a Data Server (DS). */ struct nfsclds { + struct mtx nfsclds_mtx; struct nfssockreq nfsclds_sock; struct nfsclsession nfsclds_sess; + int nfsclds_haswriteverf; + uint8_t nfsclds_verf[NFSX_VERF]; }; struct nfsclclient { Modified: projects/nfsv4.1-client/sys/fs/nfs/nfsport.h ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfs/nfsport.h Sun Feb 5 00:51:59 2012 (r231003) +++ projects/nfsv4.1-client/sys/fs/nfs/nfsport.h Sun Feb 5 01:57:31 2012 (r231004) @@ -645,6 +645,8 @@ void nfsrvd_rcv(struct socket *, void *, #define NFSPROCLISTUNLOCK() sx_sunlock(&allproc_lock) #define NFSLOCKSOCKREQ(r) mtx_lock(&((r)->nr_mtx)) #define NFSUNLOCKSOCKREQ(r) mtx_unlock(&((r)->nr_mtx)) +#define NFSLOCKDS(d) mtx_lock(&((d)->nfsclds_mtx)) +#define NFSUNLOCKDS(d) mtx_unlock(&((d)->nfsclds_mtx)) /* * Use these macros to initialize/free a mutex. Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c Sun Feb 5 00:51:59 2012 (r231003) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c Sun Feb 5 01:57:31 2012 (r231004) @@ -5025,6 +5025,7 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru dsp->nfsclds_sock.nr_nam = (struct sockaddr *)sad6; } else return (EPERM); + mtx_init(&dsp->nfsclds_mtx, "nfsds", NULL, MTX_DEF); dsp->nfsclds_sock.nr_sotype = SOCK_STREAM; mtx_init(&dsp->nfsclds_sock.nr_mtx, "nfssock", NULL, MTX_DEF); dsp->nfsclds_sock.nr_prog = NFS_PROG; @@ -5051,6 +5052,7 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru } if (error != 0) { NFSFREECRED(dsp->nfsclds_sock.nr_cred); + NFSFREEMUTEX(&dsp->nfsclds_mtx); NFSFREEMUTEX(&dsp->nfsclds_sock.nr_mtx); free(dsp->nfsclds_sock.nr_nam, M_SONAME); NFSBZERO(dsp, sizeof(*dsp)); Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clstate.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clstate.c Sun Feb 5 00:51:59 2012 (r231003) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clstate.c Sun Feb 5 01:57:31 2012 (r231004) @@ -4645,6 +4645,7 @@ nfscl_freedevinfo(struct nfscldevinfo *d if (dsp->nfsclds_sock.nr_nam != NULL) { /* All are set or none are. */ NFSFREECRED(dsp->nfsclds_sock.nr_cred); + NFSFREEMUTEX(&dsp->nfsclds_mtx); NFSFREEMUTEX(&dsp->nfsclds_sock.nr_mtx); free(dsp->nfsclds_sock.nr_nam, M_SONAME); }