summaryrefslogtreecommitdiff
path: root/sbin/fsck_ffs
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1997-10-06 20:23:17 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1997-10-06 20:23:17 +0000
commit85674180ac0b414993bec634994ea51b28390306 (patch)
tree5ce384dfed739e368b8605fc6db4ed1f26a43609 /sbin/fsck_ffs
parent44f83f3e77b70fbce9f014e39cf5c97bae700213 (diff)
back out vfs lite2 till after 2.2
Diffstat (limited to 'sbin/fsck_ffs')
-rw-r--r--sbin/fsck_ffs/dir.c13
-rw-r--r--sbin/fsck_ffs/fsck.h4
-rw-r--r--sbin/fsck_ffs/inode.c16
-rw-r--r--sbin/fsck_ffs/main.c26
-rw-r--r--sbin/fsck_ffs/pass1.c20
-rw-r--r--sbin/fsck_ffs/pass2.c35
-rw-r--r--sbin/fsck_ffs/pass5.c67
-rw-r--r--sbin/fsck_ffs/setup.c12
-rw-r--r--sbin/fsck_ffs/utilities.c30
9 files changed, 59 insertions, 164 deletions
diff --git a/sbin/fsck_ffs/dir.c b/sbin/fsck_ffs/dir.c
index ce7f126381d..c1a06d0173b 100644
--- a/sbin/fsck_ffs/dir.c
+++ b/sbin/fsck_ffs/dir.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dir.c,v 1.6 1997/10/06 15:33:32 csapuntz Exp $ */
+/* $OpenBSD: dir.c,v 1.7 1997/10/06 20:22:31 deraadt Exp $ */
/* $NetBSD: dir.c,v 1.20 1996/09/27 22:45:11 christos Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)dir.c 8.5 (Berkeley) 12/8/94";
#else
-static char rcsid[] = "$OpenBSD: dir.c,v 1.6 1997/10/06 15:33:32 csapuntz Exp $";
+static char rcsid[] = "$OpenBSD: dir.c,v 1.7 1997/10/06 20:22:31 deraadt Exp $";
#endif
#endif /* not lint */
@@ -333,13 +333,12 @@ adjust(idesc, lcnt)
pinode(idesc->id_number);
printf(" COUNT %d SHOULD BE %d",
dp->di_nlink, dp->di_nlink - lcnt);
- if (preen || usedsoftdep) {
+ if (preen) {
if (lcnt < 0) {
printf("\n");
pfatal("LINK COUNT INCREASING");
}
- if (preen)
- printf(" (ADJUSTED)\n");
+ printf(" (ADJUSTED)\n");
}
if (preen || reply("ADJUST") == 1) {
dp->di_nlink -= lcnt;
@@ -425,15 +424,13 @@ linkup(orphan, parentdir)
lostdir = (dp->di_mode & IFMT) == IFDIR;
pwarn("UNREF %s ", lostdir ? "DIR" : "FILE");
pinode(orphan);
- if ((preen || usedsoftdep) && dp->di_size == 0)
+ if (preen && dp->di_size == 0)
return (0);
if (preen)
printf(" (RECONNECTED)\n");
else
if (reply("RECONNECT") == 0)
return (0);
- if (parentdir != 0)
- lncntp[parentdir]++;
if (lfdir == 0) {
dp = ginode(ROOTINO);
idesc.id_name = lfname;
diff --git a/sbin/fsck_ffs/fsck.h b/sbin/fsck_ffs/fsck.h
index 3cc21c10b53..52a0f91a39d 100644
--- a/sbin/fsck_ffs/fsck.h
+++ b/sbin/fsck_ffs/fsck.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: fsck.h,v 1.5 1997/10/06 15:33:33 csapuntz Exp $ */
+/* $OpenBSD: fsck.h,v 1.6 1997/10/06 20:22:32 deraadt Exp $ */
/* $NetBSD: fsck.h,v 1.13 1996/10/11 20:15:46 thorpej Exp $ */
/*
@@ -176,9 +176,7 @@ int cvtlevel; /* convert to newer file system format */
int doinglevel1; /* converting to new cylinder group format */
int doinglevel2; /* converting to new inode format */
int newinofmt; /* filesystem has new inode format */
-char usedsoftdep; /* just fix soft dependency inconsistencies */
int preen; /* just fix normal inconsistencies */
-char resolved; /* cleared if unresolved changes => not clean */
char havesb; /* superblock has been read */
char skipclean; /* skip clean file systems if preening */
int fsmodified; /* 1 => write done to file system */
diff --git a/sbin/fsck_ffs/inode.c b/sbin/fsck_ffs/inode.c
index 1be39fa7e90..9324b60dab9 100644
--- a/sbin/fsck_ffs/inode.c
+++ b/sbin/fsck_ffs/inode.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: inode.c,v 1.11 1997/10/06 15:33:33 csapuntz Exp $ */
+/* $OpenBSD: inode.c,v 1.12 1997/10/06 20:22:32 deraadt Exp $ */
/* $NetBSD: inode.c,v 1.23 1996/10/11 20:15:47 thorpej Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)inode.c 8.5 (Berkeley) 2/8/95";
#else
-static char rcsid[] = "$OpenBSD: inode.c,v 1.11 1997/10/06 15:33:33 csapuntz Exp $";
+static char rcsid[] = "$OpenBSD: inode.c,v 1.12 1997/10/06 20:22:32 deraadt Exp $";
#endif
#endif /* not lint */
@@ -573,8 +573,6 @@ allocino(request, type)
{
register ino_t ino;
register struct dinode *dp;
- struct cg *cgp = &cgrp;
- int cg;
time_t t;
if (request == 0)
@@ -586,17 +584,9 @@ allocino(request, type)
break;
if (ino == maxino)
return (0);
- cg = ino_to_cg(&sblock, ino);
- getblk(&cgblk, cgtod(&sblock, cg), sblock.fs_cgsize);
- if (!cg_chkmagic(cgp))
- pfatal("CG %d: BAD MAGIC NUMBER\n", cg);
- setbit(cg_inosused(cgp), ino % sblock.fs_ipg);
- cgp->cg_cs.cs_nifree--;
-
switch (type & IFMT) {
case IFDIR:
statemap[ino] = DSTATE;
- cgp->cg_cs.cs_ndir++;
break;
case IFREG:
case IFLNK:
@@ -605,7 +595,6 @@ allocino(request, type)
default:
return (0);
}
- cgdirty();
dp = ginode(ino);
dp->di_db[0] = allocblk((long)1);
if (dp->di_db[0] == 0) {
@@ -613,7 +602,6 @@ allocino(request, type)
return (0);
}
dp->di_mode = type;
- dp->di_flags = 0;
(void)time(&t);
dp->di_atime = t;
dp->di_mtime = dp->di_ctime = dp->di_atime;
diff --git a/sbin/fsck_ffs/main.c b/sbin/fsck_ffs/main.c
index 159a2252814..6a72300475a 100644
--- a/sbin/fsck_ffs/main.c
+++ b/sbin/fsck_ffs/main.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: main.c,v 1.11 1997/10/06 15:33:33 csapuntz Exp $ */
+/* $OpenBSD: main.c,v 1.12 1997/10/06 20:22:33 deraadt Exp $ */
/* $NetBSD: main.c,v 1.22 1996/10/11 20:15:48 thorpej Exp $ */
/*
@@ -44,7 +44,7 @@ static char copyright[] =
#if 0
static char sccsid[] = "@(#)main.c 8.2 (Berkeley) 1/23/94";
#else
-static char rcsid[] = "$OpenBSD: main.c,v 1.11 1997/10/06 15:33:33 csapuntz Exp $";
+static char rcsid[] = "$OpenBSD: main.c,v 1.12 1997/10/06 20:22:33 deraadt Exp $";
#endif
#endif /* not lint */
@@ -206,13 +206,6 @@ checkfilesys(filesys, mntpt, auxdata, child)
case -1:
return (0);
}
-
- /*
- * Cleared if any questions answered no. Used to decide if
- * the superblock should be marked clean.
- */
- resolved = 1;
-
/*
* 1: scan inodes tallying blocks used
*/
@@ -228,7 +221,7 @@ checkfilesys(filesys, mntpt, auxdata, child)
* 1b: locate first references to duplicates, if any
*/
if (duplist) {
- if (preen || usedsoftdep)
+ if (preen)
pfatal("INTERNAL ERROR: dups with -p");
printf("** Phase 1b - Rescan For More DUPS\n");
pass1b();
@@ -311,19 +304,16 @@ checkfilesys(filesys, mntpt, auxdata, child)
bwrite(fswritefd, (char *)&sblock,
fsbtodb(&sblock, cgsblock(&sblock, cylno)), SBSIZE);
}
+ ckfini(1);
+ free(blockmap);
+ free(statemap);
+ free((char *)lncntp);
if (!fsmodified)
return (0);
if (!preen)
printf("\n***** FILE SYSTEM WAS MODIFIED *****\n");
- if (rerun) {
- resolved = 0;
+ if (rerun)
printf("\n***** PLEASE RERUN FSCK *****\n");
- }
- ckfini(resolved);
- free(blockmap);
- free(statemap);
- free((char *)lncntp);
-
if (hotroot()) {
struct statfs stfs_buf;
/*
diff --git a/sbin/fsck_ffs/pass1.c b/sbin/fsck_ffs/pass1.c
index 11d22ef979c..181006e8b82 100644
--- a/sbin/fsck_ffs/pass1.c
+++ b/sbin/fsck_ffs/pass1.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pass1.c,v 1.5 1997/10/06 15:33:34 csapuntz Exp $ */
+/* $OpenBSD: pass1.c,v 1.6 1997/10/06 20:22:34 deraadt Exp $ */
/* $NetBSD: pass1.c,v 1.16 1996/09/27 22:45:15 christos Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)pass1.c 8.1 (Berkeley) 6/5/93";
#else
-static char rcsid[] = "$OpenBSD: pass1.c,v 1.5 1997/10/06 15:33:34 csapuntz Exp $";
+static char rcsid[] = "$OpenBSD: pass1.c,v 1.6 1997/10/06 20:22:34 deraadt Exp $";
#endif
#endif /* not lint */
@@ -215,10 +215,8 @@ checkinode(inumber, idesc)
zlnp = (struct zlncnt *)malloc(sizeof *zlnp);
if (zlnp == NULL) {
pfatal("LINK COUNT TABLE OVERFLOW");
- if (reply("CONTINUE") == 0) {
- ckfini(0);
+ if (reply("CONTINUE") == 0)
errexit("%s", "");
- }
} else {
zlnp->zlncnt = inumber;
zlnp->next = zlnhead;
@@ -287,10 +285,8 @@ pass1check(idesc)
idesc->id_number);
if (preen)
printf(" (SKIPPING)\n");
- else if (reply("CONTINUE") == 0) {
- ckfini(0);
+ else if (reply("CONTINUE") == 0)
errexit("%s", "");
- }
return (STOP);
}
}
@@ -307,19 +303,15 @@ pass1check(idesc)
idesc->id_number);
if (preen)
printf(" (SKIPPING)\n");
- else if (reply("CONTINUE") == 0) {
- ckfini(0);
+ else if (reply("CONTINUE") == 0)
errexit("%s", "");
- }
return (STOP);
}
new = (struct dups *)malloc(sizeof(struct dups));
if (new == NULL) {
pfatal("DUP TABLE OVERFLOW.");
- if (reply("CONTINUE") == 0) {
- ckfini(0);
+ if (reply("CONTINUE") == 0)
errexit("%s", "");
- }
return (STOP);
}
new->dup = blkno;
diff --git a/sbin/fsck_ffs/pass2.c b/sbin/fsck_ffs/pass2.c
index 142fe1bdbd0..c687a30c4b0 100644
--- a/sbin/fsck_ffs/pass2.c
+++ b/sbin/fsck_ffs/pass2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pass2.c,v 1.5 1997/10/06 15:33:34 csapuntz Exp $ */
+/* $OpenBSD: pass2.c,v 1.6 1997/10/06 20:22:35 deraadt Exp $ */
/* $NetBSD: pass2.c,v 1.17 1996/09/27 22:45:15 christos Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)pass2.c 8.6 (Berkeley) 10/27/94";
#else
-static char rcsid[] = "$OpenBSD: pass2.c,v 1.5 1997/10/06 15:33:34 csapuntz Exp $";
+static char rcsid[] = "$OpenBSD: pass2.c,v 1.6 1997/10/06 20:22:35 deraadt Exp $";
#endif
#endif /* not lint */
@@ -75,10 +75,8 @@ pass2()
case USTATE:
pfatal("ROOT INODE UNALLOCATED");
- if (reply("ALLOCATE") == 0) {
- ckfini(0);
+ if (reply("ALLOCATE") == 0)
errexit("%s", "");
- }
if (allocdir(ROOTINO, ROOTINO, 0755) != ROOTINO)
errexit("CANNOT ALLOCATE ROOT INODE\n");
break;
@@ -91,10 +89,8 @@ pass2()
errexit("CANNOT ALLOCATE ROOT INODE\n");
break;
}
- if (reply("CONTINUE") == 0) {
- ckfini(0);
+ if (reply("CONTINUE") == 0)
errexit("%s", "");
- }
break;
case FSTATE:
@@ -106,10 +102,8 @@ pass2()
errexit("CANNOT ALLOCATE ROOT INODE\n");
break;
}
- if (reply("FIX") == 0) {
- ckfini(0);
+ if (reply("FIX") == 0)
errexit("%s", "");
- }
dp = ginode(ROOTINO);
dp->di_mode &= ~IFMT;
dp->di_mode |= IFDIR;
@@ -151,14 +145,8 @@ pass2()
}
} else if ((inp->i_isize & (DIRBLKSIZ - 1)) != 0) {
getpathname(pathbuf, inp->i_number, inp->i_number);
- if (usedsoftdep)
- pfatal("%s %s: LENGTH %d NOT MULTIPLE of %d",
- "DIRECTORY", pathbuf, inp->i_isize,
- DIRBLKSIZ);
- else
- pwarn("%s %s: LENGTH %d NOT MULTIPLE OF %d",
- "DIRECTORY", pathbuf, inp->i_isize,
- DIRBLKSIZ);
+ pwarn("DIRECTORY %s: LENGTH %d NOT MULTIPLE OF %d",
+ pathbuf, inp->i_isize, DIRBLKSIZ);
if (preen)
printf(" (ADJUSTED)\n");
inp->i_isize = roundup(inp->i_isize, DIRBLKSIZ);
@@ -408,7 +396,7 @@ again:
break;
if (statemap[dirp->d_ino] == FCLEAR)
errmsg = "DUP/BAD";
- else if (!preen && !usedsoftdep)
+ else if (!preen)
errmsg = "ZERO LENGTH DIRECTORY";
else {
n = 1;
@@ -433,11 +421,8 @@ again:
pwarn("%s %s %s\n", pathbuf,
"IS AN EXTRANEOUS HARD LINK TO DIRECTORY",
namebuf);
- if (preen) {
- printf (" (REMOVED)\n");
- n = 1;
- break;
- }
+ if (preen)
+ printf(" (IGNORED)\n");
else if ((n = reply("REMOVE")) == 1)
break;
}
diff --git a/sbin/fsck_ffs/pass5.c b/sbin/fsck_ffs/pass5.c
index 0abd3082cb3..5d17b4806e9 100644
--- a/sbin/fsck_ffs/pass5.c
+++ b/sbin/fsck_ffs/pass5.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pass5.c,v 1.4 1997/10/06 15:33:35 csapuntz Exp $ */
+/* $OpenBSD: pass5.c,v 1.5 1997/10/06 20:22:35 deraadt Exp $ */
/* $NetBSD: pass5.c,v 1.16 1996/09/27 22:45:18 christos Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)pass5.c 8.6 (Berkeley) 11/30/94";
#else
-static char rcsid[] = "$OpenBSD: pass5.c,v 1.4 1997/10/06 15:33:35 csapuntz Exp $";
+static char rcsid[] = "$OpenBSD: pass5.c,v 1.5 1997/10/06 20:22:35 deraadt Exp $";
#endif
#endif /* not lint */
@@ -46,6 +46,7 @@ static char rcsid[] = "$OpenBSD: pass5.c,v 1.4 1997/10/06 15:33:35 csapuntz Exp
#include <sys/time.h>
#include <ufs/ufs/dinode.h>
#include <ufs/ffs/fs.h>
+#include <ufs/ffs/ffs_extern.h>
#include <string.h>
#include "fsutil.h"
@@ -56,12 +57,11 @@ void
pass5()
{
int c, blk, frags, basesize, sumsize, mapsize, savednrpos;
- int inomapsize, blkmapsize;
register struct fs *fs = &sblock;
register struct cg *cg = &cgrp;
daddr_t dbase, dmax;
- daddr_t d;
- long i, j, k;
+ register daddr_t d;
+ register long i, j;
struct csum *cs;
struct csum cstotal;
struct inodesc idesc[3];
@@ -119,8 +119,6 @@ pass5()
sumsize = &ocg->cg_iused[0] - (u_int8_t *)(&ocg->cg_btot[0]);
mapsize = &ocg->cg_free[howmany(fs->fs_fpg, NBBY)] -
(u_char *)&ocg->cg_iused[0];
- blkmapsize = howmany(fs->fs_fpg, NBBY);
- inomapsize = &ocg->cg_free[0] - (u_char *)&ocg->cg_iused[0];
ocg->cg_magic = CG_MAGIC;
savednrpos = fs->fs_nrpos;
fs->fs_nrpos = 8;
@@ -135,12 +133,12 @@ pass5()
fs->fs_cpg * fs->fs_nrpos * sizeof(int16_t);
newcg->cg_freeoff =
newcg->cg_iusedoff + howmany(fs->fs_ipg, NBBY);
- inomapsize = newcg->cg_freeoff - newcg->cg_iusedoff;
- newcg->cg_nextfreeoff = newcg->cg_freeoff +
- howmany(fs->fs_cpg * fs->fs_spc / NSPF(fs), NBBY);
- blkmapsize = newcg->cg_nextfreeoff - newcg->cg_freeoff;
- if (fs->fs_contigsumsize > 0) {
- newcg->cg_clustersumoff = newcg->cg_nextfreeoff -
+ if (fs->fs_contigsumsize <= 0) {
+ newcg->cg_nextfreeoff = newcg->cg_freeoff +
+ howmany(fs->fs_cpg * fs->fs_spc / NSPF(fs), NBBY);
+ } else {
+ newcg->cg_clustersumoff = newcg->cg_freeoff +
+ howmany(fs->fs_cpg * fs->fs_spc / NSPF(fs), NBBY) -
sizeof(int32_t);
newcg->cg_clustersumoff =
roundup(newcg->cg_clustersumoff, sizeof(int32_t));
@@ -157,7 +155,6 @@ pass5()
break;
default:
- inomapsize = blkmapsize = sumsize = 0;
errexit("UNKNOWN ROTATIONAL TABLE FORMAT %d\n",
fs->fs_postblformat);
}
@@ -308,6 +305,13 @@ pass5()
cgdirty();
continue;
}
+ if (memcmp(cg_inosused(newcg),
+ cg_inosused(cg), mapsize) != 0 &&
+ dofix(&idesc[1], "BLK(S) MISSING IN BIT MAPS")) {
+ memcpy(cg_inosused(cg), cg_inosused(newcg),
+ (size_t)mapsize);
+ cgdirty();
+ }
if ((memcmp(newcg, cg, basesize) != 0 ||
memcmp(&cg_blktot(newcg)[0],
&cg_blktot(cg)[0], sumsize) != 0) &&
@@ -317,41 +321,6 @@ pass5()
&cg_blktot(newcg)[0], (size_t)sumsize);
cgdirty();
}
- if (usedsoftdep) {
- for (i = 0; i < inomapsize; i++) {
- j = cg_inosused(newcg)[i];
- if ((cg_inosused(cg)[i] & j) == j)
- continue;
- for (k = 0; k < NBBY; k++) {
- if ((j & (1 << k)) == 0)
- continue;
- if (cg_inosused(cg)[i] & (1 << k))
- continue;
- pwarn("ALLOCATED INODE %d MARKED FREE",
- c * fs->fs_ipg + i * 8 + k);
- }
- }
- for (i = 0; i < blkmapsize; i++) {
- j = cg_blksfree(cg)[i];
- if ((cg_blksfree(newcg)[i] & j) == j)
- continue;
- for (k = 0; k < NBBY; k++) {
- if ((j & (1 << k)) == 0)
- continue;
- if (cg_inosused(cg)[i] & (1 << k))
- continue;
- pwarn("ALLOCATED FRAG %d MARKED FREE",
- c * fs->fs_fpg + i * 8 + k);
- }
- }
- }
- if (memcmp(cg_inosused(newcg), cg_inosused(cg),
- mapsize) != 0 &&
- dofix(&idesc[1], "BLK(S) MISSING IN BIT MAPS")) {
- memmove(cg_inosused(cg), cg_inosused(newcg),
- (size_t)mapsize);
- cgdirty();
- }
}
if (fs->fs_postblformat == FS_42POSTBLFMT)
fs->fs_nrpos = savednrpos;
diff --git a/sbin/fsck_ffs/setup.c b/sbin/fsck_ffs/setup.c
index 436fe96eeb9..94fa383508d 100644
--- a/sbin/fsck_ffs/setup.c
+++ b/sbin/fsck_ffs/setup.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: setup.c,v 1.5 1997/10/06 15:33:35 csapuntz Exp $ */
+/* $OpenBSD: setup.c,v 1.6 1997/10/06 20:22:36 deraadt Exp $ */
/* $NetBSD: setup.c,v 1.27 1996/09/27 22:45:19 christos Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)setup.c 8.5 (Berkeley) 11/23/94";
#else
-static char rcsid[] = "$OpenBSD: setup.c,v 1.5 1997/10/06 15:33:35 csapuntz Exp $";
+static char rcsid[] = "$OpenBSD: setup.c,v 1.6 1997/10/06 20:22:36 deraadt Exp $";
#endif
#endif /* not lint */
@@ -336,10 +336,8 @@ setup(dev)
fsbtodb(&sblock, sblock.fs_csaddr + j * sblock.fs_frag),
size) != 0 && !asked) {
pfatal("BAD SUMMARY INFORMATION");
- if (reply("CONTINUE") == 0) {
- ckfini(0);
+ if (reply("CONTINUE") == 0)
errexit("%s", "");
- }
asked++;
}
}
@@ -384,10 +382,6 @@ setup(dev)
goto badsblabel;
}
bufinit();
- if (sblock.fs_flags & FS_DOSOFTDEP)
- usedsoftdep = 1;
- else
- usedsoftdep = 0;
return (1);
badsblabel:
diff --git a/sbin/fsck_ffs/utilities.c b/sbin/fsck_ffs/utilities.c
index 3b6dfe2d017..643ac2a1c65 100644
--- a/sbin/fsck_ffs/utilities.c
+++ b/sbin/fsck_ffs/utilities.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: utilities.c,v 1.5 1997/10/06 15:33:36 csapuntz Exp $ */
+/* $OpenBSD: utilities.c,v 1.6 1997/10/06 20:22:37 deraadt Exp $ */
/* $NetBSD: utilities.c,v 1.18 1996/09/27 22:45:20 christos Exp $ */
/*
@@ -38,7 +38,7 @@
#if 0
static char sccsid[] = "@(#)utilities.c 8.1 (Berkeley) 6/5/93";
#else
-static char rcsid[] = "$OpenBSD: utilities.c,v 1.5 1997/10/06 15:33:36 csapuntz Exp $";
+static char rcsid[] = "$OpenBSD: utilities.c,v 1.6 1997/10/06 20:22:37 deraadt Exp $";
#endif
#endif /* not lint */
@@ -96,7 +96,6 @@ reply(question)
printf("\n");
if (!persevere && (nflag || fswritefd < 0)) {
printf("%s? no\n\n", question);
- resolved = 0;
return (0);
}
if (yflag || (persevere && nflag)) {
@@ -107,17 +106,13 @@ reply(question)
printf("%s? [yn] ", question);
(void) fflush(stdout);
c = getc(stdin);
- while (c != '\n' && getc(stdin) != '\n') {
- if (feof(stdin)) {
- resolved = 0;
+ while (c != '\n' && getc(stdin) != '\n')
+ if (feof(stdin))
return (0);
- }
- }
} while (c != 'y' && c != 'Y' && c != 'n' && c != 'N');
printf("\n");
if (c == 'y' || c == 'Y')
return (1);
- resolved = 0;
return (0);
}
@@ -379,8 +374,7 @@ int
allocblk(frags)
long frags;
{
- int i, j, k, cg, baseblk;
- struct cg *cgp = &cgrp;
+ register int i, j, k;
if (frags <= 0 || frags > sblock.fs_frag)
return (0);
@@ -395,21 +389,9 @@ allocblk(frags)
j += k;
continue;
}
- cg = dtog(&sblock, i + j);
- getblk(&cgblk, cgtod(&sblock, cg), sblock.fs_cgsize);
- if (!cg_chkmagic(cgp))
- pfatal("CG %d: BAD MAGIC NUMBER\n", cg);
- baseblk = dtogd(&sblock, i + j);
-
- for (k = 0; k < frags; k++) {
+ for (k = 0; k < frags; k++)
setbmap(i + j + k);
- clrbit(cg_blksfree(cgp), baseblk + k);
- }
n_blks += frags;
- if (frags == sblock.fs_frag)
- cgp->cg_cs.cs_nbfree--;
- else
- cgp->cg_cs.cs_nffree -= frags;
return (i + j);
}
}