- seekdir(dirp, itp->t_seekpt, itp->t_seekpt);
- dp = readdir(dirp); /* "." */
- dp = readdir(dirp); /* ".." */
- dp = readdir(dirp); /* first real entry */
+ rst_seekdir(dirp, itp->t_seekpt, itp->t_seekpt);
+ dp = rst_readdir(dirp); /* "." */
+ if (dp != NULL && strcmp(dp->d_name, ".") == 0) {
+ dp = rst_readdir(dirp); /* ".." */
+ } else {
+ np = lookupino(ino);
+ if (np == NULL)
+ panic("corrupted symbol table\n");
+ fprintf(stderr, ". missing from directory %s\n", myname(np));
+ }
+ if (dp != NULL && strcmp(dp->d_name, "..") == 0) {
+ dp = rst_readdir(dirp); /* first real entry */
+ } else {
+ np = lookupino(ino);
+ if (np == NULL)
+ panic("corrupted symbol table\n");
+ fprintf(stderr, ".. missing from directory %s\n", myname(np));
+ }