summaryrefslogtreecommitdiff
path: root/ufs-fsck/pass4.c
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>1996-05-02 03:22:57 +0000
committerMiles Bader <miles@gnu.org>1996-05-02 03:22:57 +0000
commit525a965d9e5c578967ccdcdd22fdd0903bc56589 (patch)
tree2c6223cdfd95afc4a43c1dc9d3502b2a103a35bd /ufs-fsck/pass4.c
parentb30dead62e576070198ade84a184e1f8ac330bc0 (diff)
Fix up recovery logic for when reconnecting an inode fails.
Get rid of extraneous calls to pfail.
Diffstat (limited to 'ufs-fsck/pass4.c')
-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);
}
}
}