git: 4b08a62ed441 - main - When running fsck_ffs(8) in background ensure that a superblock has been read.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 26 May 2023 01:59:38 UTC
The branch main has been updated by mckusick:
URL: https://cgit.FreeBSD.org/src/commit/?id=4b08a62ed441668c103f834f5fe756ece5a8d9b3
commit 4b08a62ed441668c103f834f5fe756ece5a8d9b3
Author: Kirk McKusick <mckusick@FreeBSD.org>
AuthorDate: 2023-05-26 01:56:22 +0000
Commit: Kirk McKusick <mckusick@FreeBSD.org>
CommitDate: 2023-05-26 01:59:16 +0000
When running fsck_ffs(8) in background ensure that a superblock has been read.
Reported by: Mikhail T.
PR: 271352
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
---
sbin/fsck_ffs/main.c | 5 ++++-
sbin/fsck_ffs/setup.c | 8 ++++++--
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/sbin/fsck_ffs/main.c b/sbin/fsck_ffs/main.c
index 566fbe5ccd15..60a542785541 100644
--- a/sbin/fsck_ffs/main.c
+++ b/sbin/fsck_ffs/main.c
@@ -711,7 +711,10 @@ setup_bkgrdchk(struct statfs *mntp, int sbreadfailed, char **filesys)
}
free(sblock.fs_csp);
free(sblock.fs_si);
- havesb = 0;
+ if (readsb() == 0) {
+ pwarn("CANNOT READ SNAPSHOT SUPERBLOCK\n");
+ return (0);
+ }
*filesys = snapname;
cmd.version = FFS_CMD_VERSION;
cmd.handle = fsreadfd;
diff --git a/sbin/fsck_ffs/setup.c b/sbin/fsck_ffs/setup.c
index 1d62a733c2f6..fbcf069c9c97 100644
--- a/sbin/fsck_ffs/setup.c
+++ b/sbin/fsck_ffs/setup.c
@@ -88,8 +88,12 @@ setup(char *dev)
* We are expected to have an open file descriptor and a superblock.
*/
if (fsreadfd < 0 || havesb == 0) {
- if (debug)
- printf("setup: bad fsreadfd or missing superblock\n");
+ if (debug) {
+ if (fsreadfd < 0)
+ printf("setup: missing fsreadfd\n");
+ else
+ printf("setup: missing superblock\n");
+ }
return (0);
}
if (preen == 0)