- if (mntp == NFSTOV(np)->v_mount &&
- !bcmp((caddr_t)fhp, (caddr_t)&np->n_fh, NFSX_FH)) {
- /*
- * Following is essentially an inline expanded
- * copy of ngrab(), expanded inline for speed,
- * and so that the test for a mounted on nfsnode
- * can be deferred until after we are sure that
- * the nfsnode isn't busy.
- */
- if ((np->n_flag & NLOCKED) != 0) {
- np->n_flag |= NWANT;
- sleep((caddr_t)np, PINOD);
- goto loop;
- }
- vp = NFSTOV(np);
- if (vp->v_count == 0) { /* nfsno on free list */
- if (nq = np->n_freef)
- nq->n_freeb = np->n_freeb;
- else
- nfreet = np->n_freeb;
- *np->n_freeb = nq;
- np->n_freef = NULL;
- np->n_freeb = NULL;
- }
- np->n_flag |= NLOCKED;
- VREF(vp);
- *npp = np;
- return(0);
+ if (mntp != NFSTOV(np)->v_mount ||
+ bcmp((caddr_t)fhp, (caddr_t)&np->n_fh, NFSX_FH))
+ continue;
+ /*
+ * Following is essentially an inline expanded
+ * copy of ngrab(), expanded inline for speed,
+ * and so that the test for a mounted on nfsnode
+ * can be deferred until after we are sure that
+ * the nfsnode isn't busy.
+ */
+ if ((np->n_flag & NLOCKED) != 0) {
+ np->n_flag |= NWANT;
+ sleep((caddr_t)np, PINOD);
+ goto loop;