Date: Sun, 5 Feb 2012 01:57:31 +0000 (UTC) From: Rick Macklem <rmacklem@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r231004 - in projects/nfsv4.1-client/sys/fs: nfs nfsclient Message-ID: <201202050157.q151vVqm061253@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202050157.q151vVqm061253>