- ipp = &ihashtbl[INOHASH(dev, ino)];
-loop:
- for (ip = *ipp; ip; ip = ip->i_next) {
- if (ino != ip->i_number || dev != ip->i_dev)
- continue;
- if ((ip->i_flag & ILOCKED) != 0) {
- ip->i_flag |= IWANT;
- sleep((caddr_t)ip, PINOD);
- goto loop;
+ ipp = &ihashtbl[INOHASH(device, inum)];
+retry: for (ip = *ipp; ip != NULL; ip = ip->i_next)
+ if (inum == ip->i_number && device == ip->i_dev) {
+ if (ip->i_flag & ILOCKED) {
+ ip->i_flag |= IWANT;
+ sleep(ip, PINOD);
+ goto retry;
+ }
+ vp = ITOV(ip);
+ if (vget(vp))
+ goto retry;
+ return (vp);