Ejemplo n.º 1
0
static void
nfs_convert_diskless(void)
{

	bcopy(&nfs_diskless.myif, &nfsv3_diskless.myif,
		sizeof(struct ifaliasreq));
	bcopy(&nfs_diskless.mygateway, &nfsv3_diskless.mygateway,
		sizeof(struct sockaddr_in));
	nfs_convert_oargs(&nfsv3_diskless.root_args,&nfs_diskless.root_args);
	if (nfsv3_diskless.root_args.flags & NFSMNT_NFSV3) {
		nfsv3_diskless.root_fhsize = NFSX_V3FH;
		bcopy(nfs_diskless.root_fh, nfsv3_diskless.root_fh, NFSX_V3FH);
	} else {
		nfsv3_diskless.root_fhsize = NFSX_V2FH;
		bcopy(nfs_diskless.root_fh, nfsv3_diskless.root_fh, NFSX_V2FH);
	}
	bcopy(&nfs_diskless.root_saddr,&nfsv3_diskless.root_saddr,
		sizeof(struct sockaddr_in));
	bcopy(nfs_diskless.root_hostnam, nfsv3_diskless.root_hostnam, MNAMELEN);
	nfsv3_diskless.root_time = nfs_diskless.root_time;
	bcopy(nfs_diskless.my_hostnam, nfsv3_diskless.my_hostnam,
		MAXHOSTNAMELEN);
	nfs_diskless_valid = 3;
}
Ejemplo n.º 2
0
static void
nfs_convert_diskless(void)
{
	int i;

	bcopy(&nfs_diskless.myif, &nfsv3_diskless.myif,
		sizeof(struct ifaliasreq));
	bcopy(&nfs_diskless.mygateway, &nfsv3_diskless.mygateway,
		sizeof(struct sockaddr_in));
	nfs_convert_oargs(&nfsv3_diskless.swap_args, &nfs_diskless.swap_args);

	/*
	 * Copy the NFS handle passed from the diskless code.
	 *
	 * XXX CURRENTLY DISABLED - bootp passes us a NFSv2 handle which
	 * will fail utterly with HAMMER due to limitations with NFSv2
	 * directory cookies.
	 */
	bcopy(nfs_diskless.swap_fh, nfsv3_diskless.swap_fh, NFSX_V2FH);
	nfsv3_diskless.swap_fhsize = NFSX_V2FH;
	for (i = NFSX_V2FH - 1; i >= 0; --i) {
		if (nfs_diskless.swap_fh[i])
			break;
	}
	if (i < 0)
		nfsv3_diskless.swap_fhsize = 0;
	nfsv3_diskless.swap_fhsize = 0;		/* FORCE DISABLE */

	bcopy(&nfs_diskless.swap_saddr,&nfsv3_diskless.swap_saddr,
		sizeof(struct sockaddr_in));
	bcopy(nfs_diskless.swap_hostnam,nfsv3_diskless.swap_hostnam, MNAMELEN);
	nfsv3_diskless.swap_nblks = nfs_diskless.swap_nblks;
	bcopy(&nfs_diskless.swap_ucred, &nfsv3_diskless.swap_ucred,
		sizeof(struct ucred));
	nfs_convert_oargs(&nfsv3_diskless.root_args, &nfs_diskless.root_args);

	/*
	 * Copy the NFS handle passed from the diskless code.
	 *
	 * XXX CURRENTLY DISABLED - bootp passes us a NFSv2 handle which
	 * will fail utterly with HAMMER due to limitations with NFSv2
	 * directory cookies.
	 */
	bcopy(nfs_diskless.root_fh, nfsv3_diskless.root_fh, NFSX_V2FH);
	nfsv3_diskless.root_fhsize = NFSX_V2FH;
	for (i = NFSX_V2FH - 1; i >= 0; --i) {
		if (nfs_diskless.root_fh[i])
			break;
	}
	if (i < 0)
		nfsv3_diskless.root_fhsize = 0;
	nfsv3_diskless.root_fhsize = 0;		/* FORCE DISABLE */

	bcopy(&nfs_diskless.root_saddr,&nfsv3_diskless.root_saddr,
		sizeof(struct sockaddr_in));
	bcopy(nfs_diskless.root_hostnam,nfsv3_diskless.root_hostnam, MNAMELEN);
	nfsv3_diskless.root_time = nfs_diskless.root_time;
	bcopy(nfs_diskless.my_hostnam,nfsv3_diskless.my_hostnam,
		MAXHOSTNAMELEN);
	nfs_diskless_valid = 3;
}