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; }
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; }