Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/nfsclient/nfs_clnode.c
Show First 20 Lines • Show All 156 Lines • ▼ Show 20 Lines | ncl_nget(struct mount *mntp, u_int8_t *fhp, int fhsize, struct nfsnode **npp, | ||||
* are correct | * are correct | ||||
*/ | */ | ||||
if ((fhsize == nmp->nm_fhsize) && | if ((fhsize == nmp->nm_fhsize) && | ||||
!bcmp(fhp, nmp->nm_fh, fhsize)) { | !bcmp(fhp, nmp->nm_fh, fhsize)) { | ||||
if (vp->v_type == VNON) | if (vp->v_type == VNON) | ||||
vp->v_type = VDIR; | vp->v_type = VDIR; | ||||
vp->v_vflag |= VV_ROOT; | vp->v_vflag |= VV_ROOT; | ||||
} | } | ||||
vp->v_vflag |= VV_VMSIZEVNLOCK; | |||||
np->n_fhp = malloc(sizeof (struct nfsfh) + fhsize, | np->n_fhp = malloc(sizeof (struct nfsfh) + fhsize, | ||||
M_NFSFH, M_WAITOK); | M_NFSFH, M_WAITOK); | ||||
bcopy(fhp, np->n_fhp->nfh_fh, fhsize); | bcopy(fhp, np->n_fhp->nfh_fh, fhsize); | ||||
np->n_fhp->nfh_len = fhsize; | np->n_fhp->nfh_len = fhsize; | ||||
error = insmntque(vp, mntp); | error = insmntque(vp, mntp); | ||||
if (error != 0) { | if (error != 0) { | ||||
*npp = NULL; | *npp = NULL; | ||||
free(np->n_fhp, M_NFSFH); | free(np->n_fhp, M_NFSFH); | ||||
▲ Show 20 Lines • Show All 185 Lines • Show Last 20 Lines |