summaryrefslogtreecommitdiff
path: root/ufs-fsck
diff options
context:
space:
mode:
Diffstat (limited to 'ufs-fsck')
-rw-r--r--ufs-fsck/pass4.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/ufs-fsck/pass4.c b/ufs-fsck/pass4.c
index 3f5c26cc..17c0b307 100644
--- a/ufs-fsck/pass4.c
+++ b/ufs-fsck/pass4.c
@@ -44,8 +44,6 @@ pass4()
write_inode (number, &dino);
pfix ("ADJUSTED");
}
- else
- pfail (0);
}
}
else if (linkfound[number] && inodestate[number] == UNALLOC)
@@ -73,21 +71,21 @@ pass4()
if (preen || reply ("RECONNECT"))
reconn_failed = !linkup (number, -1);
- if (!reconn_failed)
+ if (! reconn_failed)
pfix ("RECONNECTED");
- else
- pfail ("FAILED");
}
if (dino.di_size == 0 || reconn_failed)
{
+ if (reconn_failed && !preen)
+ /* If preening, the previous call to problem is still active
+ (more likely the failure was too severe, and exited). */
+ problem (0, "RECONNECT FAILED");
if (preen || reply ("CLEAR"))
{
inodestate[number] = UNALLOC;
clear_inode (number, &dino);
pfix ("CLEARED");
}
- else
- pfail (0);
}
}
}