projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
save block pointers of directories as they are encountered in pass1
[unix-history]
/
usr
/
src
/
sbin
/
fsck
/
pass1.c
diff --git
a/usr/src/sbin/fsck/pass1.c
b/usr/src/sbin/fsck/pass1.c
index
ec676a5
..
aadff78
100644
(file)
--- a/
usr/src/sbin/fsck/pass1.c
+++ b/
usr/src/sbin/fsck/pass1.c
@@
-16,7
+16,7
@@
*/
#ifndef lint
*/
#ifndef lint
-static char sccsid[] = "@(#)pass1.c 5.
9
(Berkeley) %G%";
+static char sccsid[] = "@(#)pass1.c 5.
10
(Berkeley) %G%";
#endif /* not lint */
#include <sys/param.h>
#endif /* not lint */
#include <sys/param.h>
@@
-134,8
+134,11
@@
pass1()
zlnhead = zlnp;
}
}
zlnhead = zlnp;
}
}
- statemap[inumber] =
- (dp->di_mode & IFMT) == IFDIR ? DSTATE : FSTATE;
+ if ((dp->di_mode & IFMT) == IFDIR) {
+ statemap[inumber] = DSTATE;
+ cacheino(dp, inumber);
+ } else
+ statemap[inumber] = FSTATE;
badblk = dupblk = 0;
idesc.id_number = inumber;
(void)ckinode(dp, &idesc);
badblk = dupblk = 0;
idesc.id_number = inumber;
(void)ckinode(dp, &idesc);