Hi Tom;
I adjusted your loop a little :)
Did you intend to retry domount() if retval was not EBUSY or 0 ??
1260 /*
1261 * If we get EBUSY, we try again once to see if we can
perform
1262 * the mount. We do this because of a spurious race
condition.
1263 */
1264 for (i = 0; i < 2; i++) {
1265 retval = domount(NULL, uap, stubvp, cr, vfsp);
1266 if (retval == 0) {
1267 retval = VFS_ROOT(*vfsp, newvpp);
1268 VFS_RELE(*vfsp);
1269 break;
1270 }
.... if (retval == EBUSY) {
1271 int error;
1272 bool_t was_mounted;
1273
1274 /*
1275 * Before we try it again, why don't we
check
1276 * to see if it is mounted!
1277 */
1278 error =
nfs4_trigger_mounted_already(stubvp,
1279 newvpp, &was_mounted, vfsp);
1280 if (error) {
1282 break;
1283 }
.... if (was_mounted) {
1284 retval = 0;
1285 break;
1286 }
1293 } else {
.... break;
.... }
1294 }
Robert..