From nobody Sun Feb 27 01:35:18 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 13D5C19EBF48; Sun, 27 Feb 2022 01:35:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4K5mKf6tykz3nDt; Sun, 27 Feb 2022 01:35:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1645925719; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l9k5rmaW+5iPQ7LX2KBy5xYleTxdKRnYc3SXZTgSeCo=; b=K5VoSK2FoSqN4aBpAYSmrIH5W4XTMZwpg9HDJe6ryA0SFtMi2yMWyMWfrkH5wzT2x0Z74H FTJFL6vt0pnz98nWKv7QxuQPU5KSELYm8TyRhUSJlAN9aJBDKDNpvy9r86pWeA1p2Yj8MU LC5RYYDEs5tNzUvZc2tik5SMf5kGiOSPtOIztvfE75GTb62BY5R2R4Pb+XUIhpTnzL0Itg wV0X0Flhsgkd2CWU0BfQMXA7aUq1Mg88VSfCIqnGM+pZ6tCP6Y2610Gr1xlmV5YzpflA4+ jtTQpe5BxsIWjaQUsYiqoX15EfWPAaLcQ0KwPZl3dZBYYMXN/QyKi6s8k6nh6A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C85B01E7B4; Sun, 27 Feb 2022 01:35:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 21R1ZIlV017377; Sun, 27 Feb 2022 01:35:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 21R1ZI4g017376; Sun, 27 Feb 2022 01:35:18 GMT (envelope-from git) Date: Sun, 27 Feb 2022 01:35:18 GMT Message-Id: <202202270135.21R1ZI4g017376@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick Subject: git: 5f3cd10138a1 - stable/13 - Update fsdb(8) to reflect new structure of fsck_ffs(8). List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 5f3cd10138a1ab2a25aec92e59cba1754aa37a58 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1645925719; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l9k5rmaW+5iPQ7LX2KBy5xYleTxdKRnYc3SXZTgSeCo=; b=OdFv6OxyaF1WYziYDS9H1uZsFWNcMLZG3OFAOknCZ1Yv6QeQ3ND3WqyPOgPwuVCZZ75jD8 5SKbk9oZHvRai+x85RTh2QxRILCqWJ9/vrAPtKcEAhj6vvgrIfDpBWj3akNzkK69mLahbC 3FFn3uaMgDB+C+4woK1Y4DfMhQVPCv3D7MVlU2na3ZfhYc1DYBucbg+xT8jcTmz1BcswD3 LPgkPUEVCPBTri2gHQGdYG/OHZ5hOYowJXdOTLfff0z6upYZOtIaEsBzDZhFqOIJwTjAxJ kEII26FR63f5kPRmh/HRnXoFZoASyU3npqn3ATsLZJwVd9ir9nVxZ++DsR+z1Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1645925719; a=rsa-sha256; cv=none; b=GVLoBhzZxebcrGo4z9uZsgUrv+tmUQWPQu40zKDcyWa17KqktFjKF32Sq2/e5a5Fykms/R /6OYldhP9/WUhRsP04Jf5AgvDZKYrEAHJwTvTIFqC1eY4F2sBF0XwgQqXm7rzwRkmaPsVQ mZZpd2i5W7+wi6qJk2UWoNpIcFsK7uKV2ivQnI9n/WwuuT2/ujtPcZTtxCI1Ct2ZjvMpnl vl4/KFHxdAiW7kI98DuAKif5VrbkMx6asqFX7mOCMMsZWxVdRQM4A8nKubgLXFmxJjmbnu pXSBdCzXJoa+AyGnGLgE8rlYIr6JRIrVrSZoIywbrXBlD2I5Mw+QDRMPhZktxA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=5f3cd10138a1ab2a25aec92e59cba1754aa37a58 commit 5f3cd10138a1ab2a25aec92e59cba1754aa37a58 Author: Kirk McKusick AuthorDate: 2022-02-23 23:39:52 +0000 Commit: Kirk McKusick CommitDate: 2022-02-26 21:38:48 +0000 Update fsdb(8) to reflect new structure of fsck_ffs(8). (cherry picked from commit c5d476c98c2275966f68c7b81dab2421b143f5a9) --- sbin/fsck_ffs/fsck.h | 1 + sbin/fsck_ffs/main.c | 39 --------------------------------------- sbin/fsck_ffs/setup.c | 39 +++++++++++++++++++++++++++++++++++++++ sbin/fsdb/fsdb.c | 2 +- 4 files changed, 41 insertions(+), 40 deletions(-) diff --git a/sbin/fsck_ffs/fsck.h b/sbin/fsck_ffs/fsck.h index 690a98038884..daa346826eff 100644 --- a/sbin/fsck_ffs/fsck.h +++ b/sbin/fsck_ffs/fsck.h @@ -490,6 +490,7 @@ struct inostat *inoinfo(ino_t inum); void IOstats(char *what); int linkup(ino_t orphan, ino_t parentdir, char *name); int makeentry(ino_t parent, ino_t ino, const char *name); +int openfilesys(char *dev); void panic(const char *fmt, ...) __printflike(1, 2); void pass1(void); void pass1b(void); diff --git a/sbin/fsck_ffs/main.c b/sbin/fsck_ffs/main.c index 7c16f9c9737d..45bb279ce374 100644 --- a/sbin/fsck_ffs/main.c +++ b/sbin/fsck_ffs/main.c @@ -76,7 +76,6 @@ static void usage(void) __dead2; static intmax_t argtoimax(int flag, const char *req, const char *str, int base); static int checkfilesys(char *filesys); static int setup_bkgrdchk(struct statfs *mntp, int sbrdfailed, char **filesys); -static int openfilesys(char *dev); static int chkdoreload(struct statfs *mntp); static struct statfs *getmntpt(const char *); @@ -713,44 +712,6 @@ setup_bkgrdchk(struct statfs *mntp, int sbreadfailed, char **filesys) return (1); } -/* - * Open a device or file to be checked by fsck. - */ -static int -openfilesys(char *dev) -{ - struct stat statb; - int saved_fsreadfd; - - if (stat(dev, &statb) < 0) { - pfatal("CANNOT STAT %s: %s\n", dev, strerror(errno)); - return (0); - } - if ((statb.st_mode & S_IFMT) != S_IFCHR && - (statb.st_mode & S_IFMT) != S_IFBLK) { - if (bkgrdflag != 0 && (statb.st_flags & SF_SNAPSHOT) == 0) { - pfatal("BACKGROUND FSCK LACKS A SNAPSHOT\n"); - exit(EEXIT); - } - if (bkgrdflag != 0) { - cursnapshot = statb.st_ino; - } else { - pfatal("%s IS NOT A DISK DEVICE\n", dev); - if (reply("CONTINUE") == 0) - return (0); - } - } - saved_fsreadfd = fsreadfd; - if ((fsreadfd = open(dev, O_RDONLY)) < 0) { - fsreadfd = saved_fsreadfd; - pfatal("CANNOT OPEN %s: %s\n", dev, strerror(errno)); - return (0); - } - if (saved_fsreadfd != -1) - close(saved_fsreadfd); - return (1); -} - static int chkdoreload(struct statfs *mntp) { diff --git a/sbin/fsck_ffs/setup.c b/sbin/fsck_ffs/setup.c index 375ba897199a..45662636557d 100644 --- a/sbin/fsck_ffs/setup.c +++ b/sbin/fsck_ffs/setup.c @@ -210,6 +210,44 @@ badsb: return (0); } +/* + * Open a device or file to be checked by fsck. + */ +int +openfilesys(char *dev) +{ + struct stat statb; + int saved_fsreadfd; + + if (stat(dev, &statb) < 0) { + pfatal("CANNOT STAT %s: %s\n", dev, strerror(errno)); + return (0); + } + if ((statb.st_mode & S_IFMT) != S_IFCHR && + (statb.st_mode & S_IFMT) != S_IFBLK) { + if (bkgrdflag != 0 && (statb.st_flags & SF_SNAPSHOT) == 0) { + pfatal("BACKGROUND FSCK LACKS A SNAPSHOT\n"); + exit(EEXIT); + } + if (bkgrdflag != 0) { + cursnapshot = statb.st_ino; + } else { + pfatal("%s IS NOT A DISK DEVICE\n", dev); + if (reply("CONTINUE") == 0) + return (0); + } + } + saved_fsreadfd = fsreadfd; + if ((fsreadfd = open(dev, O_RDONLY)) < 0) { + fsreadfd = saved_fsreadfd; + pfatal("CANNOT OPEN %s: %s\n", dev, strerror(errno)); + return (0); + } + if (saved_fsreadfd != -1) + close(saved_fsreadfd); + return (1); +} + /* * Read in the super block and its summary info. */ @@ -331,6 +369,7 @@ void sblock_init(void) { + fsreadfd = -1; fswritefd = -1; fsmodified = 0; lfdir = 0; diff --git a/sbin/fsdb/fsdb.c b/sbin/fsdb/fsdb.c index 785aeb2b5a75..c935f88952b4 100644 --- a/sbin/fsdb/fsdb.c +++ b/sbin/fsdb/fsdb.c @@ -111,7 +111,7 @@ main(int argc, char *argv[]) fsys = argv[0]; sblock_init(); - if (!setup(fsys)) + if (openfilesys(fsys) == 0 || readsb(0) == 0 || setup(fsys) == 0) errx(1, "cannot set up file system `%s'", fsys); if (fswritefd < 0) nflag++;