aboutsummaryrefslogtreecommitdiff
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
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
-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;