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..