args.fh = &nfh;
args.fh = nfh;
nfs_mount(mp, path, data, ndp, p)	struct mount *mp;	char *path;	caddr_t data;	struct nameidata *ndp;	struct proc *p;{	int error;	struct nfs_args args;	struct mbuf *nam;	struct vnode *vp;	char pth[MNAMELEN], hst[MNAMELEN];	size_t len;	nfsv2fh_t nfh;	error = copyin(data, (caddr_t)&args, sizeof (struct nfs_args));	if (error)		return (error);	if (mp->mnt_flag & MNT_UPDATE) {		register struct nfsmount *nmp = VFSTONFS(mp);		if (nmp == NULL)			return (EIO);		nfs_decode_args(nmp, &args);		args.flags |= NFSMNT_RESVPORT;	/* ALWAYS allocate one */		return (0);	}	error = copyin((caddr_t)args.fh, (caddr_t)&nfh, sizeof (nfsv2fh_t));	if (error)		return (error);	if ((error = copyinstr(path, pth, MNAMELEN-1, &len)) != 0)		return (error);	bzero(&pth[len], MNAMELEN - len);	if ((error = copyinstr(args.hostname, hst, MNAMELEN-1, &len)) != 0)		return (error);	bzero(&hst[len], MNAMELEN - len);	/* sockargs() call must be after above copyin() calls */	error = sockargs(&nam, (caddr_t)args.addr,			 args.addrlen, MT_SONAME);	if (error)		return (error);	args.fh = &nfh;	error = mountnfs(&args, mp, nam, pth, hst, &vp);	return (error);}