Need a code review of the fix for CR 6788618. Description: If you have an IB HCA with its two ports connected on two different subnets, nfs mounts hang if you try to mount from an nfs server reachable only on the second port/subnet.
The problem here is during the mount, rib_reachable() uses rib_ping_srv() which goes through all the IP addr to check if a server is reachable, while rib_chk_srv_ibaddr() called later when making the connection tries only the first port's IP address. Hence although rib_reachable() flagged that the server is reachable over IB, the mount later hangs when later trying to make a connection. The fix is to use a common interface for both the cases.. getting rid of rib_chk_srv_ibaddr(), along with some cleanup. webrev at: http://cr.opensolaris.org/~maheshvs/6788618-webrev/ Thanks, Mahesh