Lines Matching refs:nss
751 nfs_socket_search_cleanup(struct nfs_socket_search *nss) in nfs_socket_search_cleanup() argument
755 TAILQ_FOREACH_SAFE(nso, &nss->nss_socklist, nso_link, nsonext) { in nfs_socket_search_cleanup()
756 TAILQ_REMOVE(&nss->nss_socklist, nso, nso_link); in nfs_socket_search_cleanup()
757 nss->nss_sockcnt--; in nfs_socket_search_cleanup()
760 if (nss->nss_sock) { in nfs_socket_search_cleanup()
761 nfs_socket_destroy(nss->nss_sock); in nfs_socket_search_cleanup()
762 nss->nss_sock = NULL; in nfs_socket_search_cleanup()
809 nfs_socket_search_update_error(struct nfs_socket_search *nss, int error) in nfs_socket_search_update_error() argument
811 if (nfs_connect_error_class(error) >= nfs_connect_error_class(nss->nss_error)) { in nfs_socket_search_update_error()
812 nss->nss_error = error; in nfs_socket_search_update_error()
824 nfs_connect_search_new_socket(struct nfsmount *nmp, struct nfs_socket_search *nss, struct timeval *… in nfs_connect_search_new_socket() argument
835 vfs_statfs(nmp->nm_mountp)->f_mntfromname, nss->nss_addrcnt); in nfs_connect_search_new_socket()
844 while (nss->nss_addrcnt > 0 && ((nss->nss_last < 0) || (nss->nss_sockcnt == 0) || in nfs_connect_search_new_socket()
845 ((nss->nss_sockcnt < 4) && (now->tv_sec >= (nss->nss_last + 2))))) { in nfs_connect_search_new_socket()
850 fsl = nmp->nm_locations.nl_locations[nss->nss_nextloc.nli_loc]; in nfs_connect_search_new_socket()
851 fss = fsl->nl_servers[nss->nss_nextloc.nli_serv]; in nfs_connect_search_new_socket()
852 addrstr = fss->ns_addresses[nss->nss_nextloc.nli_addr]; in nfs_connect_search_new_socket()
853 …NFS_SOCK_DBG("Trying address %s for program %d on port %d\n", addrstr, nss->nss_protocol, nss->nss… in nfs_connect_search_new_socket()
859 if (nss->nss_protocol == PMAPPROG) { in nfs_connect_search_new_socket()
860 addrstr = (nss->nss_sotype == SOCK_DGRAM) ? RPCB_TICLTS_PATH : RPCB_TICOTSORD_PATH; in nfs_connect_search_new_socket()
861 } else if (nss->nss_protocol == NFS_PROG) { in nfs_connect_search_new_socket()
864 addrstr = (nss->nss_sotype == SOCK_DGRAM) ? NFS_TICLTS_PATH : NFS_TICOTSORD_PATH; in nfs_connect_search_new_socket()
867 NFS_SOCK_DBG("Calling prog %d with <%s>\n", nss->nss_protocol, addrstr); in nfs_connect_search_new_socket()
871 nfs_location_next(&nmp->nm_locations, &nss->nss_nextloc); in nfs_connect_search_new_socket()
872 nss->nss_addrcnt -= 1; in nfs_connect_search_new_socket()
873 nss->nss_last = -2; in nfs_connect_search_new_socket()
879 nfs_location_next(&nmp->nm_locations, &nss->nss_nextloc); in nfs_connect_search_new_socket()
880 nss->nss_addrcnt -= 1; in nfs_connect_search_new_socket()
881 nss->nss_last = -2; in nfs_connect_search_new_socket()
886 error = nfs_socket_create(nmp, (struct sockaddr*)&ss, nss->nss_sotype, in nfs_connect_search_new_socket()
887 nss->nss_port, nss->nss_protocol, nss->nss_version, in nfs_connect_search_new_socket()
888 ((nss->nss_protocol == NFS_PROG) && NMFLAG(nmp, RESVPORT)), &nso); in nfs_connect_search_new_socket()
893 nso->nso_location = nss->nss_nextloc; in nfs_connect_search_new_socket()
894 nso->nso_wake = nss; in nfs_connect_search_new_socket()
904 TAILQ_INSERT_TAIL(&nss->nss_socklist, nso, nso_link); in nfs_connect_search_new_socket()
905 nss->nss_sockcnt++; in nfs_connect_search_new_socket()
906 nfs_location_next(&nmp->nm_locations, &nss->nss_nextloc); in nfs_connect_search_new_socket()
907 nss->nss_addrcnt -= 1; in nfs_connect_search_new_socket()
909 nss->nss_last = now->tv_sec; in nfs_connect_search_new_socket()
912 if (nss->nss_addrcnt == 0 && nss->nss_last < 0) { in nfs_connect_search_new_socket()
913 nss->nss_last = now->tv_sec; in nfs_connect_search_new_socket()
1048 nfs_connect_search_socket_found(struct nfsmount *nmp, struct nfs_socket_search *nss, struct nfs_soc… in nfs_connect_search_socket_found() argument
1061 TAILQ_REMOVE(&nss->nss_socklist, nso, nso_link); in nfs_connect_search_socket_found()
1062 nss->nss_sockcnt--; in nfs_connect_search_socket_found()
1063 nss->nss_sock = nso; in nfs_connect_search_socket_found()
1071 nfs_connect_search_socket_reap(struct nfsmount *nmp __unused, struct nfs_socket_search *nss, struct… in nfs_connect_search_socket_reap() argument
1075 TAILQ_FOREACH_SAFE(nso, &nss->nss_socklist, nso_link, nsonext) { in nfs_connect_search_socket_reap()
1077 if (now->tv_sec >= (nso->nso_timestamp + nss->nss_timeo)) { in nfs_connect_search_socket_reap()
1091 nfs_socket_search_update_error(nss, nso->nso_error); in nfs_connect_search_socket_reap()
1092 TAILQ_REMOVE(&nss->nss_socklist, nso, nso_link); in nfs_connect_search_socket_reap()
1093 nss->nss_sockcnt--; in nfs_connect_search_socket_reap()
1096 if (nss->nss_addrcnt > 0) { in nfs_connect_search_socket_reap()
1097 nss->nss_last = -2; in nfs_connect_search_socket_reap()
1106 nfs_connect_search_check(struct nfsmount *nmp, struct nfs_socket_search *nss, struct timeval *now) in nfs_connect_search_check() argument
1111 …if (((now->tv_sec - nss->nss_timestamp) >= 8) && ((nss->nss_flags & (NSS_VERBOSE | NSS_WARNED)) ==… in nfs_connect_search_check()
1113 nss->nss_flags |= NSS_WARNED; in nfs_connect_search_check()
1123 if (nss->nss_last >= 0) { in nfs_connect_search_check()
1124 tsleep(nss, PSOCK, "nfs_connect_search_wait", hz); in nfs_connect_search_check()
1135 nfs_connect_search_loop(struct nfsmount *nmp, struct nfs_socket_search *nss) in nfs_connect_search_loop() argument
1140 int verbose = (nss->nss_flags & NSS_VERBOSE); in nfs_connect_search_loop()
1147 error = nfs_connect_search_new_socket(nmp, nss, &now); in nfs_connect_search_loop()
1154 TAILQ_FOREACH(nso, &nss->nss_socklist, nso_link) { in nfs_connect_search_loop()
1177 nfs_connect_search_socket_found(nmp, nss, nso); in nfs_connect_search_loop()
1185 nfs_connect_search_socket_reap(nmp, nss, &now); in nfs_connect_search_loop()
1192 if (!nss->nss_sock && (!TAILQ_EMPTY(&nss->nss_socklist) || nss->nss_addrcnt)) { in nfs_connect_search_loop()
1193 error = nfs_connect_search_check(nmp, nss, &now); in nfs_connect_search_loop()
1222 struct nfs_socket_search nss; in nfs_connect() local
1263 nmp->nm_nss = &nss; in nfs_connect()
1270 bzero(&nss, sizeof(nss)); in nfs_connect()
1271 nss.nss_addrcnt = addrtotal; in nfs_connect()
1272 nss.nss_error = savederror; in nfs_connect()
1273 TAILQ_INIT(&nss.nss_socklist); in nfs_connect()
1274 nss.nss_sotype = sotype; in nfs_connect()
1275 nss.nss_startloc = nmp->nm_locations.nl_current; in nfs_connect()
1276 nss.nss_timestamp = start.tv_sec; in nfs_connect()
1277 nss.nss_timeo = timeo; in nfs_connect()
1279 nss.nss_flags |= NSS_VERBOSE; in nfs_connect()
1292 nss.nss_port = NFS_PORT; in nfs_connect()
1293 nss.nss_protocol = NFS_PROG; in nfs_connect()
1294 nss.nss_version = 4; in nfs_connect()
1295 nss.nss_flags |= NSS_FALLBACK2PMAP; in nfs_connect()
1299 nss.nss_port = PMAPPORT; in nfs_connect()
1300 nss.nss_protocol = PMAPPROG; in nfs_connect()
1301 nss.nss_version = 0; in nfs_connect()
1307 nss.nss_port = nmp->nm_nfsport; in nfs_connect()
1308 nss.nss_protocol = NFS_PROG; in nfs_connect()
1309 nss.nss_version = 0; in nfs_connect()
1315 nss.nss_port = nmp->nm_nfsport ? nmp->nm_nfsport : NFS_PORT; in nfs_connect()
1316 nss.nss_protocol = NFS_PROG; in nfs_connect()
1317 nss.nss_version = 4; in nfs_connect()
1324 nss.nss_flags |= NSS_FALLBACK2PMAP; in nfs_connect()
1327 nss.nss_port = PMAPPORT; in nfs_connect()
1328 nss.nss_protocol = PMAPPROG; in nfs_connect()
1329 nss.nss_version = 0; in nfs_connect()
1336 nss.nss_port = PMAPPORT; in nfs_connect()
1337 nss.nss_protocol = PMAPPROG; in nfs_connect()
1338 nss.nss_version = 0; in nfs_connect()
1341 nss.nss_port = nmp->nm_nfsport; in nfs_connect()
1342 nss.nss_protocol = NFS_PROG; in nfs_connect()
1343 nss.nss_version = nmp->nm_vers; in nfs_connect()
1347 vfs_statfs(nmp->nm_mountp)->f_mntfromname, nss.nss_sotype, nss.nss_port, in nfs_connect()
1348 nss.nss_protocol, nss.nss_version); in nfs_connect()
1353 nss.nss_port = PMAPPORT; in nfs_connect()
1354 nss.nss_protocol = PMAPPROG; in nfs_connect()
1355 nss.nss_version = 0; in nfs_connect()
1357 nss.nss_port = nmp->nm_nfsport; in nfs_connect()
1358 nss.nss_protocol = NFS_PROG; in nfs_connect()
1359 nss.nss_version = nmp->nm_vers; in nfs_connect()
1362 vfs_statfs(nmp->nm_mountp)->f_mntfromname, nss.nss_sotype, nss.nss_port, in nfs_connect()
1363 nss.nss_protocol, nss.nss_version); in nfs_connect()
1368 nss.nss_nextloc = nss.nss_startloc; in nfs_connect()
1369 …if ((nss.nss_nextloc.nli_serv >= nmp->nm_locations.nl_locations[nss.nss_nextloc.nli_loc]->nl_servc… in nfs_connect()
1370 …(nss.nss_nextloc.nli_addr >= nmp->nm_locations.nl_locations[nss.nss_nextloc.nli_loc]->nl_servers[n… in nfs_connect()
1371 nfs_location_next(&nmp->nm_locations, &nss.nss_nextloc); in nfs_connect()
1372 if (!nfs_location_index_cmp(&nss.nss_nextloc, &nss.nss_startloc)) { in nfs_connect()
1378 nss.nss_last = -1; in nfs_connect()
1382 error = nfs_connect_search_loop(nmp, &nss); in nfs_connect()
1383 if (error || !nss.nss_sock) { in nfs_connect()
1385 nfs_socket_search_cleanup(&nss); in nfs_connect()
1386 if (nss.nss_flags & NSS_FALLBACK2PMAP) { in nfs_connect()
1389 vfs_statfs(nmp->nm_mountp)->f_mntfromname, error, nss.nss_error); in nfs_connect()
1393 if (!error && (nss.nss_sotype == SOCK_STREAM) && !nmp->nm_sotype && (nmp->nm_vers < NFS_VER4)) { in nfs_connect()
1394 if (nss.nss_error == EPROGUNAVAIL) { in nfs_connect()
1397 savederror = nss.nss_error; in nfs_connect()
1399 vfs_statfs(nmp->nm_mountp)->f_mntfromname, error, nss.nss_error); in nfs_connect()
1403 vfs_statfs(nmp->nm_mountp)->f_mntfromname, error, nss.nss_error); in nfs_connect()
1407 error = nss.nss_error ? nss.nss_error : ETIMEDOUT; in nfs_connect()
1413 if (nss.nss_flags & NSS_WARNED) { in nfs_connect()
1429 nso = nss.nss_sock; in nfs_connect()
1430 nss.nss_sock = NULL; in nfs_connect()
1510 nfs_socket_search_update_error(&nss, error); in nfs_connect()
1528 nfs_socket_search_update_error(&nss, error); in nfs_connect()
1534 nsonfs->nso_wake = &nss; in nfs_connect()
1537 nfs_socket_search_update_error(&nss, error); in nfs_connect()
1543 TAILQ_INSERT_TAIL(&nss.nss_socklist, nsonfs, nso_link); in nfs_connect()
1544 nss.nss_sockcnt++; in nfs_connect()
1646 nfs_socket_search_update_error(&nss, error); in nfs_connect()
1667 nfs_socket_search_update_error(&nss, error); in nfs_connect()
1731 nfs_socket_search_update_error(&nss, error); in nfs_connect()
1748 nfs_socket_search_update_error(&nss, error); in nfs_connect()
1823 nfs_socket_search_update_error(&nss, error); in nfs_connect()
1870 if (nss.nss_flags & NSS_WARNED) { in nfs_connect()
1876 nfs_socket_search_cleanup(&nss); in nfs_connect()