Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/nfs/nfs_commonkrpc.c
Context not available. | |||||
NFSSTATESPINLOCK; | NFSSTATESPINLOCK; | ||||
NFSREQSPINLOCK; | NFSREQSPINLOCK; | ||||
NFSDLOCKMUTEX; | NFSDLOCKMUTEX; | ||||
extern struct nfsstats newnfsstats; | extern struct nfsstatsv1 nfsstatsv1; | ||||
extern struct nfsreqhead nfsd_reqq; | extern struct nfsreqhead nfsd_reqq; | ||||
extern int nfscl_ticks; | extern int nfscl_ticks; | ||||
extern void (*ncl_call_invalcaches)(struct vnode *); | extern void (*ncl_call_invalcaches)(struct vnode *); | ||||
Context not available. | |||||
procnum = NFSV4PROC_COMPOUND; | procnum = NFSV4PROC_COMPOUND; | ||||
if (nmp != NULL) { | if (nmp != NULL) { | ||||
NFSINCRGLOBAL(newnfsstats.rpcrequests); | NFSINCRGLOBAL(nfsstatsv1.rpcrequests); | ||||
/* Map the procnum to the old NFSv2 one, as required. */ | /* Map the procnum to the old NFSv2 one, as required. */ | ||||
if ((nd->nd_flag & ND_NFSV2) != 0) { | if ((nd->nd_flag & ND_NFSV2) != 0) { | ||||
Context not available. | |||||
if (stat == RPC_SUCCESS) { | if (stat == RPC_SUCCESS) { | ||||
error = 0; | error = 0; | ||||
} else if (stat == RPC_TIMEDOUT) { | } else if (stat == RPC_TIMEDOUT) { | ||||
NFSINCRGLOBAL(newnfsstats.rpctimeouts); | NFSINCRGLOBAL(nfsstatsv1.rpctimeouts); | ||||
error = ETIMEDOUT; | error = ETIMEDOUT; | ||||
} else if (stat == RPC_VERSMISMATCH) { | } else if (stat == RPC_VERSMISMATCH) { | ||||
NFSINCRGLOBAL(newnfsstats.rpcinvalid); | NFSINCRGLOBAL(nfsstatsv1.rpcinvalid); | ||||
error = EOPNOTSUPP; | error = EOPNOTSUPP; | ||||
} else if (stat == RPC_PROGVERSMISMATCH) { | } else if (stat == RPC_PROGVERSMISMATCH) { | ||||
NFSINCRGLOBAL(newnfsstats.rpcinvalid); | NFSINCRGLOBAL(nfsstatsv1.rpcinvalid); | ||||
error = EPROTONOSUPPORT; | error = EPROTONOSUPPORT; | ||||
} else if (stat == RPC_INTR) { | } else if (stat == RPC_INTR) { | ||||
error = EINTR; | error = EINTR; | ||||
} else { | } else { | ||||
NFSINCRGLOBAL(newnfsstats.rpcinvalid); | NFSINCRGLOBAL(nfsstatsv1.rpcinvalid); | ||||
error = EACCES; | error = EACCES; | ||||
} | } | ||||
if (error) { | if (error) { | ||||
Context not available. |