|
|
1.1 root 1: /*
2: * Copyright (c) 1980, 1986 The Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted
6: * provided that: (1) source distributions retain this entire copyright
7: * notice and comment, and (2) distributions including binaries display
8: * the following acknowledgement: ``This product includes software
9: * developed by the University of California, Berkeley and its contributors''
10: * in the documentation or other materials provided with the distribution
11: * and in all advertising materials mentioning features or use of this
12: * software. Neither the name of the University nor the names of its
13: * contributors may be used to endorse or promote products derived
14: * from this software without specific prior written permission.
15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
17: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18: */
19:
20: #ifndef lint
21: static char sccsid[] = "@(#)pass3.c 5.10 (Berkeley) 6/1/90";
22: #endif /* not lint */
23:
24: #include <sys/param.h>
25: #include <ufs/dinode.h>
26: #include <ufs/fs.h>
27: #include "fsck.h"
28:
29: pass3()
30: {
31: register struct inoinfo **inpp, *inp;
32: ino_t orphan;
33: int loopcnt;
34:
35: for (inpp = &inpsort[inplast - 1]; inpp >= inpsort; inpp--) {
36: inp = *inpp;
37: if (inp->i_number == ROOTINO ||
38: !(inp->i_parent == 0 || statemap[inp->i_number] == DSTATE))
39: continue;
40: if (statemap[inp->i_number] == DCLEAR)
41: continue;
42: for (loopcnt = 0; ; loopcnt++) {
43: orphan = inp->i_number;
44: if (inp->i_parent == 0 ||
45: statemap[inp->i_parent] != DSTATE ||
46: loopcnt > numdirs)
47: break;
48: inp = getinoinfo(inp->i_parent);
49: }
50: (void)linkup(orphan, inp->i_dotdot);
51: inp->i_parent = inp->i_dotdot = lfdir;
52: lncntp[lfdir]--;
53: statemap[orphan] = DFOUND;
54: propagate();
55: }
56: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.