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
add firewall check for bad entry in state map
[unix-history]
/
usr
/
src
/
sbin
/
fsck
/
setup.c
diff --git
a/usr/src/sbin/fsck/setup.c
b/usr/src/sbin/fsck/setup.c
index
6e3a32c
..
88ddbdb
100644
(file)
--- a/
usr/src/sbin/fsck/setup.c
+++ b/
usr/src/sbin/fsck/setup.c
@@
-1,6
+1,12
@@
+/*
+ * Copyright (c) 1980 Regents of the University of California.
+ * All rights reserved. The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ */
+
#ifndef lint
#ifndef lint
-static char
version[] = "@(#)setup.c 3.1
(Berkeley) %G%";
-#endif
+static char
sccsid[] = "@(#)setup.c 5.2
(Berkeley) %G%";
+#endif
not lint
#include <sys/param.h>
#include <sys/inode.h>
#include <sys/param.h>
#include <sys/inode.h>
@@
-16,7
+22,7
@@
setup(dev)
dev_t rootdev;
struct stat statb;
daddr_t super = bflag ? bflag : SBLOCK;
dev_t rootdev;
struct stat statb;
daddr_t super = bflag ? bflag : SBLOCK;
- int i, j
, c, d, cgd
;
+ int i, j;
long size;
BUFAREA asblk;
# define altsblock asblk.b_un.b_fs
long size;
BUFAREA asblk;
# define altsblock asblk.b_un.b_fs
@@
-25,7
+31,7
@@
setup(dev)
errexit("Can't stat root\n");
rootdev = statb.st_dev;
if (stat(dev, &statb) < 0) {
errexit("Can't stat root\n");
rootdev = statb.st_dev;
if (stat(dev, &statb) < 0) {
-
error
("Can't stat %s\n", dev);
+
printf
("Can't stat %s\n", dev);
return (0);
}
rawflg = 0;
return (0);
}
rawflg = 0;
@@
-40,7
+46,7
@@
setup(dev)
if (rootdev == statb.st_rdev)
hotroot++;
if ((dfile.rfdes = open(dev, 0)) < 0) {
if (rootdev == statb.st_rdev)
hotroot++;
if ((dfile.rfdes = open(dev, 0)) < 0) {
-
error
("Can't open %s\n", dev);
+
printf
("Can't open %s\n", dev);
return (0);
}
if (preen == 0)
return (0);
}
if (preen == 0)
@@
-53,13
+59,8
@@
setup(dev)
}
if (preen == 0)
printf("\n");
}
if (preen == 0)
printf("\n");
- fixcg = 0; inosumbad = 0; offsumbad = 0; frsumbad = 0; sbsumbad = 0;
dfile.mod = 0;
dfile.mod = 0;
- n_files = n_blks = n_ffree = n_bfree = 0;
- muldup = enddup = &duplist[0];
- badlnp = &badlncnt[0];
lfdir = 0;
lfdir = 0;
- rplyflag = 0;
initbarea(&sblk);
initbarea(&fileblk);
initbarea(&inoblk);
initbarea(&sblk);
initbarea(&fileblk);
initbarea(&inoblk);
@@
-68,7
+69,7
@@
setup(dev)
/*
* Read in the super block and its summary info.
*/
/*
* Read in the super block and its summary info.
*/
- if (bread(&dfile, (char *)&sblock, super, (long)SBSIZE)
=
= 0)
+ if (bread(&dfile, (char *)&sblock, super, (long)SBSIZE)
!
= 0)
return (0);
sblk.b_bno = super;
sblk.b_size = SBSIZE;
return (0);
sblk.b_bno = super;
sblk.b_size = SBSIZE;
@@
-93,8
+94,8
@@
setup(dev)
*/
if (bflag)
goto sbok;
*/
if (bflag)
goto sbok;
- if (getblk(&asblk, cgsblock(&sblock, sblock.fs_ncg - 1),
-
sblock.fs_sbsize) == 0
)
+ getblk(&asblk, cgsblock(&sblock, sblock.fs_ncg - 1), sblock.fs_sbsize);
+
if (asblk.b_errs != NULL
)
return (0);
altsblock.fs_link = sblock.fs_link;
altsblock.fs_rlink = sblock.fs_rlink;
return (0);
altsblock.fs_link = sblock.fs_link;
altsblock.fs_rlink = sblock.fs_rlink;
@@
-107,6
+108,7
@@
setup(dev)
altsblock.fs_flags = sblock.fs_flags;
altsblock.fs_maxcontig = sblock.fs_maxcontig;
altsblock.fs_minfree = sblock.fs_minfree;
altsblock.fs_flags = sblock.fs_flags;
altsblock.fs_maxcontig = sblock.fs_maxcontig;
altsblock.fs_minfree = sblock.fs_minfree;
+ altsblock.fs_optim = sblock.fs_optim;
altsblock.fs_rotdelay = sblock.fs_rotdelay;
altsblock.fs_maxbpg = sblock.fs_maxbpg;
bcopy((char *)sblock.fs_csp, (char *)altsblock.fs_csp,
altsblock.fs_rotdelay = sblock.fs_rotdelay;
altsblock.fs_maxbpg = sblock.fs_maxbpg;
bcopy((char *)sblock.fs_csp, (char *)altsblock.fs_csp,
@@
-118,7
+120,6
@@
setup(dev)
sbok:
fmax = sblock.fs_size;
imax = sblock.fs_ncg * sblock.fs_ipg;
sbok:
fmax = sblock.fs_size;
imax = sblock.fs_ncg * sblock.fs_ipg;
- n_bad = cgsblock(&sblock, 0); /* boot block plus dedicated sblock */
/*
* read in the summary info.
*/
/*
* read in the summary info.
*/
@@
-128,7
+129,7
@@
sbok:
sblock.fs_csp[j] = (struct csum *)calloc(1, (unsigned)size);
if (bread(&dfile, (char *)sblock.fs_csp[j],
fsbtodb(&sblock, sblock.fs_csaddr + j * sblock.fs_frag),
sblock.fs_csp[j] = (struct csum *)calloc(1, (unsigned)size);
if (bread(&dfile, (char *)sblock.fs_csp[j],
fsbtodb(&sblock, sblock.fs_csaddr + j * sblock.fs_frag),
- size)
=
= 0)
+ size)
!
= 0)
return (0);
}
/*
return (0);
}
/*
@@
-140,11
+141,6
@@
sbok:
printf("cannot alloc %d bytes for blockmap\n", bmapsz);
goto badsb;
}
printf("cannot alloc %d bytes for blockmap\n", bmapsz);
goto badsb;
}
- freemap = calloc((unsigned)bmapsz, sizeof (char));
- if (freemap == NULL) {
- printf("cannot alloc %d bytes for freemap\n", bmapsz);
- goto badsb;
- }
statemap = calloc((unsigned)(imax + 1), sizeof(char));
if (statemap == NULL) {
printf("cannot alloc %d bytes for statemap\n", imax + 1);
statemap = calloc((unsigned)(imax + 1), sizeof(char));
if (statemap == NULL) {
printf("cannot alloc %d bytes for statemap\n", imax + 1);
@@
-156,16
+152,6
@@
sbok:
(imax + 1) * sizeof(short));
goto badsb;
}
(imax + 1) * sizeof(short));
goto badsb;
}
- for (c = 0; c < sblock.fs_ncg; c++) {
- cgd = cgdmin(&sblock, c);
- if (c == 0) {
- d = cgbase(&sblock, c);
- cgd += howmany(sblock.fs_cssize, sblock.fs_fsize);
- } else
- d = cgsblock(&sblock, c);
- for (; d < cgd; d++)
- setbmap(d);
- }
return (1);
return (1);