Instead of always hard-coding the socket type for the nfs root mount as
SOCK_DGRAM (i.e. UDP), respect the value configured earlier. This allows TCP NFS root mounts using e.g. the boot.nfsroot.options="tcp" tunable. In this case some of the connection parameters like the retry timer were previously set appropriately for TCP but inappropriately for the UDP socket that was actually used, leading to e.g. extremely long recovery times (O(hours)) after a nfs server reboot. Reviewed by: mohans MFC After: 2 weeks
This commit is contained in:
parent
1fff60d4b2
commit
365d5c4ba7
@ -430,7 +430,7 @@ nfs_mountroot(struct mount *mp, struct thread *td)
|
||||
* Do enough of ifconfig(8) so that the critical net interface can
|
||||
* talk to the server.
|
||||
*/
|
||||
error = socreate(nd->myif.ifra_addr.sa_family, &so, SOCK_DGRAM, 0,
|
||||
error = socreate(nd->myif.ifra_addr.sa_family, &so, nd->root_args.sotype, 0,
|
||||
td->td_ucred, td);
|
||||
if (error)
|
||||
panic("nfs_mountroot: socreate(%04x): %d",
|
||||
|
Loading…
x
Reference in New Issue
Block a user