aboutsummaryrefslogtreecommitdiff
path: root/sbin/fsck_ffs
diff options
context:
space:
mode:
authorKirk McKusick <mckusick@FreeBSD.org>2021-03-24 23:50:24 +0000
committerKirk McKusick <mckusick@FreeBSD.org>2021-03-24 23:53:28 +0000
commitbc444e2ec6e6cc9d96d35ab7ce3c02c0da952fad (patch)
treee6b0070b8aeea8569cca8d558e13433deea1fdb6 /sbin/fsck_ffs
parentec8f1ea8d536e91ad37e03e45a688c4e255b9cb0 (diff)
downloadsrc-bc444e2ec6e6cc9d96d35ab7ce3c02c0da952fad.tar.gz
src-bc444e2ec6e6cc9d96d35ab7ce3c02c0da952fad.zip
Fix fsck_ffs Pass 1b error exit "bad inode number 2 to nextinode".
Pass 1b of fsck_ffs runs only when Pass 1 has found duplicate blocks. When starting up, Pass 1b failed to properly skip over the two unused inodes at the beginning of the filesystem resulting in the above error message when it tried to read the filesystem root inode. Reported by: Chuck Silvers Tested by: Chuck Silvers MFC after: 3 days Sponsored by: Netflix
Diffstat (limited to 'sbin/fsck_ffs')
-rw-r--r--sbin/fsck_ffs/pass1b.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sbin/fsck_ffs/pass1b.c b/sbin/fsck_ffs/pass1b.c
index 8c09ef36acad..b44e0107c982 100644
--- a/sbin/fsck_ffs/pass1b.c
+++ b/sbin/fsck_ffs/pass1b.c
@@ -78,8 +78,10 @@ pass1b(void)
continue;
setinodebuf(c, inosused);
for (i = 0; i < inosused; i++, inumber++) {
- if (inumber < UFS_ROOTINO)
+ if (inumber < UFS_ROOTINO) {
+ (void)getnextinode(inumber, 0);
continue;
+ }
dp = getnextinode(inumber, 0);
idesc.id_number = inumber;
idesc.id_type = inoinfo(inumber)->ino_idtype;