summaryrefslogtreecommitdiffstats
path: root/sbin/fsck_ffs/pass1.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/fsck_ffs/pass1.c')
-rw-r--r--sbin/fsck_ffs/pass1.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sbin/fsck_ffs/pass1.c b/sbin/fsck_ffs/pass1.c
index 98d2a05..515dffe 100644
--- a/sbin/fsck_ffs/pass1.c
+++ b/sbin/fsck_ffs/pass1.c
@@ -133,9 +133,14 @@ pass1(void)
*/
if ((preen || inoopt) && usedsoftdep && !rebuildcg) {
cp = &cg_inosused(cgp)[(inosused - 1) / CHAR_BIT];
- for ( ; inosused > 0; inosused -= CHAR_BIT, cp--) {
- if (*cp == 0)
+ for ( ; inosused != 0; cp--) {
+ if (*cp == 0) {
+ if (inosused > CHAR_BIT)
+ inosused -= CHAR_BIT;
+ else
+ inosused = 0;
continue;
+ }
for (i = 1 << (CHAR_BIT - 1); i > 0; i >>= 1) {
if (*cp & i)
break;
@@ -143,8 +148,6 @@ pass1(void)
}
break;
}
- if (inosused < 0)
- inosused = 0;
}
/*
* Allocate inoinfo structures for the allocated inodes.
OpenPOWER on IntegriCloud