Module Name: src
Committed By: chs
Date: Sat Jan 7 19:41:30 UTC 2023
Modified Files:
src/sbin/fsck_ffs: main.c pass1.c pass1b.c pass4.c pass5.c setup.c
src/sbin/fsdb: fsdb.c
src/sbin/newfs: mkfs.c
src/sbin/resize_ffs: resize_ffs.c
src/sbin/tunefs: tunefs.c
src/sys/ufs/ffs: ffs_alloc.c ffs_extern.h ffs_subr.c fs.h
src/usr.sbin/dumpfs: dumpfs.c
src/usr.sbin/makefs: Makefile ffs.c
src/usr.sbin/makefs/ffs: ffs_alloc.c ffs_extern.h mkfs.c
src/usr.sbin/quotacheck: quotacheck.c
Log Message:
ufs: fixed signed/unsigned bugs affecting large file systems
Apply these commits from FreeBSD:
commit e870d1e6f97cc73308c11c40684b775bcfa906a2
Author: Kirk McKusick <[email protected]>
Date: Wed Feb 10 20:10:35 2010 +0000
This fix corrects a problem in the file system that treats large
inode numbers as negative rather than unsigned. For a default
(16K block) file system, this bug began to show up at a file system
size above about 16Tb.
To fully handle this problem, newfs must be updated to ensure that
it will never create a filesystem with more than 2^32 inodes. That
patch will be forthcoming soon.
Reported by: Scott Burns, John Kilburg, Bruce Evans
Followup by: Jeff Roberson
PR: 133980
MFC after: 2 weeks
commit 81479e688b0f643ffacd3f335b4b4bba460b769d
Author: Kirk McKusick <[email protected]>
Date: Thu Feb 11 18:14:53 2010 +0000
One last pass to get all the unsigned comparisons correct.
In additional to the changes from FreeBSD, this commit includes quite a few
related changes to appease -Wsign-compare.
To generate a diff of this commit:
cvs rdiff -u -r1.90 -r1.91 src/sbin/fsck_ffs/main.c
cvs rdiff -u -r1.62 -r1.63 src/sbin/fsck_ffs/pass1.c
cvs rdiff -u -r1.23 -r1.24 src/sbin/fsck_ffs/pass1b.c
cvs rdiff -u -r1.28 -r1.29 src/sbin/fsck_ffs/pass4.c
cvs rdiff -u -r1.55 -r1.56 src/sbin/fsck_ffs/pass5.c
cvs rdiff -u -r1.104 -r1.105 src/sbin/fsck_ffs/setup.c
cvs rdiff -u -r1.53 -r1.54 src/sbin/fsdb/fsdb.c
cvs rdiff -u -r1.132 -r1.133 src/sbin/newfs/mkfs.c
cvs rdiff -u -r1.57 -r1.58 src/sbin/resize_ffs/resize_ffs.c
cvs rdiff -u -r1.57 -r1.58 src/sbin/tunefs/tunefs.c
cvs rdiff -u -r1.171 -r1.172 src/sys/ufs/ffs/ffs_alloc.c
cvs rdiff -u -r1.87 -r1.88 src/sys/ufs/ffs/ffs_extern.h
cvs rdiff -u -r1.53 -r1.54 src/sys/ufs/ffs/ffs_subr.c
cvs rdiff -u -r1.70 -r1.71 src/sys/ufs/ffs/fs.h
cvs rdiff -u -r1.67 -r1.68 src/usr.sbin/dumpfs/dumpfs.c
cvs rdiff -u -r1.39 -r1.40 src/usr.sbin/makefs/Makefile
cvs rdiff -u -r1.73 -r1.74 src/usr.sbin/makefs/ffs.c
cvs rdiff -u -r1.30 -r1.31 src/usr.sbin/makefs/ffs/ffs_alloc.c
cvs rdiff -u -r1.8 -r1.9 src/usr.sbin/makefs/ffs/ffs_extern.h
cvs rdiff -u -r1.41 -r1.42 src/usr.sbin/makefs/ffs/mkfs.c
cvs rdiff -u -r1.50 -r1.51 src/usr.sbin/quotacheck/quotacheck.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sbin/fsck_ffs/main.c
diff -u src/sbin/fsck_ffs/main.c:1.90 src/sbin/fsck_ffs/main.c:1.91
--- src/sbin/fsck_ffs/main.c:1.90 Thu Nov 17 06:40:38 2022
+++ src/sbin/fsck_ffs/main.c Sat Jan 7 19:41:29 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.90 2022/11/17 06:40:38 chs Exp $ */
+/* $NetBSD: main.c,v 1.91 2023/01/07 19:41:29 chs Exp $ */
/*
* Copyright (c) 1980, 1986, 1993
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 19
#if 0
static char sccsid[] = "@(#)main.c 8.6 (Berkeley) 5/14/95";
#else
-__RCSID("$NetBSD: main.c,v 1.90 2022/11/17 06:40:38 chs Exp $");
+__RCSID("$NetBSD: main.c,v 1.91 2023/01/07 19:41:29 chs Exp $");
#endif
#endif /* not lint */
@@ -368,7 +368,7 @@ checkfilesys(const char *filesys, const
daddr_t n_ffree, n_bfree;
struct dups *dp;
struct zlncnt *zlnp;
- int cylno;
+ uint32_t cylno;
#ifdef LITE2BORKEN
int flags;
#endif
Index: src/sbin/fsck_ffs/pass1.c
diff -u src/sbin/fsck_ffs/pass1.c:1.62 src/sbin/fsck_ffs/pass1.c:1.63
--- src/sbin/fsck_ffs/pass1.c:1.62 Fri Nov 18 07:41:31 2022
+++ src/sbin/fsck_ffs/pass1.c Sat Jan 7 19:41:29 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: pass1.c,v 1.62 2022/11/18 07:41:31 martin Exp $ */
+/* $NetBSD: pass1.c,v 1.63 2023/01/07 19:41:29 chs Exp $ */
/*
* Copyright (c) 1980, 1986, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)pass1.c 8.6 (Berkeley) 4/28/95";
#else
-__RCSID("$NetBSD: pass1.c,v 1.62 2022/11/18 07:41:31 martin Exp $");
+__RCSID("$NetBSD: pass1.c,v 1.63 2023/01/07 19:41:29 chs Exp $");
#endif
#endif /* not lint */
@@ -68,7 +68,7 @@ pass1(void)
{
ino_t inumber, inosused, ninosused, ii;
size_t inospace;
- int c;
+ uint32_t c;
daddr_t i, cgd;
struct inodesc idesc;
struct cg *cgp = cgrp;
Index: src/sbin/fsck_ffs/pass1b.c
diff -u src/sbin/fsck_ffs/pass1b.c:1.23 src/sbin/fsck_ffs/pass1b.c:1.24
--- src/sbin/fsck_ffs/pass1b.c:1.23 Tue Jan 22 09:39:12 2013
+++ src/sbin/fsck_ffs/pass1b.c Sat Jan 7 19:41:29 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: pass1b.c,v 1.23 2013/01/22 09:39:12 dholland Exp $ */
+/* $NetBSD: pass1b.c,v 1.24 2023/01/07 19:41:29 chs Exp $ */
/*
* Copyright (c) 1980, 1986, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)pass1b.c 8.4 (Berkeley) 4/28/95";
#else
-__RCSID("$NetBSD: pass1b.c,v 1.23 2013/01/22 09:39:12 dholland Exp $");
+__RCSID("$NetBSD: pass1b.c,v 1.24 2023/01/07 19:41:29 chs Exp $");
#endif
#endif /* not lint */
@@ -56,7 +56,7 @@ static int pass1bcheck(struct inodesc *)
void
pass1b(void)
{
- int c, i;
+ uint32_t c, i;
union dinode *dp;
struct inodesc idesc;
ino_t inumber;
Index: src/sbin/fsck_ffs/pass4.c
diff -u src/sbin/fsck_ffs/pass4.c:1.28 src/sbin/fsck_ffs/pass4.c:1.29
--- src/sbin/fsck_ffs/pass4.c:1.28 Sun Jun 23 22:03:34 2013
+++ src/sbin/fsck_ffs/pass4.c Sat Jan 7 19:41:29 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: pass4.c,v 1.28 2013/06/23 22:03:34 dholland Exp $ */
+/* $NetBSD: pass4.c,v 1.29 2023/01/07 19:41:29 chs Exp $ */
/*
* Copyright (c) 1980, 1986, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)pass4.c 8.4 (Berkeley) 4/28/95";
#else
-__RCSID("$NetBSD: pass4.c,v 1.28 2013/06/23 22:03:34 dholland Exp $");
+__RCSID("$NetBSD: pass4.c,v 1.29 2023/01/07 19:41:29 chs Exp $");
#endif
#endif /* not lint */
@@ -62,7 +62,8 @@ pass4(void)
struct zlncnt *zlnp;
union dinode *dp;
struct inodesc idesc;
- int n, i, cg;
+ int n, i;
+ uint32_t cg;
struct inostat *info;
memset(&idesc, 0, sizeof(struct inodesc));
Index: src/sbin/fsck_ffs/pass5.c
diff -u src/sbin/fsck_ffs/pass5.c:1.55 src/sbin/fsck_ffs/pass5.c:1.56
--- src/sbin/fsck_ffs/pass5.c:1.55 Thu Nov 17 06:40:38 2022
+++ src/sbin/fsck_ffs/pass5.c Sat Jan 7 19:41:29 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: pass5.c,v 1.55 2022/11/17 06:40:38 chs Exp $ */
+/* $NetBSD: pass5.c,v 1.56 2023/01/07 19:41:29 chs Exp $ */
/*
* Copyright (c) 1980, 1986, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)pass5.c 8.9 (Berkeley) 4/28/95";
#else
-__RCSID("$NetBSD: pass5.c,v 1.55 2022/11/17 06:40:38 chs Exp $");
+__RCSID("$NetBSD: pass5.c,v 1.56 2023/01/07 19:41:29 chs Exp $");
#endif
#endif /* not lint */
@@ -59,8 +59,9 @@ void print_bmap(u_char *,u_int32_t);
void
pass5(void)
{
- int c, blk, frags, basesize, sumsize, mapsize, cssize;
+ int blk, frags, basesize, sumsize, mapsize, cssize;
int inomapsize, blkmapsize;
+ uint32_t c;
struct fs *fs = sblock;
daddr_t dbase, dmax;
daddr_t d;
@@ -290,15 +291,15 @@ pass5(void)
newcg->cg_cs.cs_nffree = 0;
newcg->cg_cs.cs_nbfree = 0;
newcg->cg_cs.cs_nifree = fs->fs_ipg;
- if (cg->cg_rotor >= 0 && cg->cg_rotor < newcg->cg_ndblk)
+ if (cg->cg_rotor < newcg->cg_ndblk)
newcg->cg_rotor = cg->cg_rotor;
else
newcg->cg_rotor = 0;
- if (cg->cg_frotor >= 0 && cg->cg_frotor < newcg->cg_ndblk)
+ if (cg->cg_frotor < newcg->cg_ndblk)
newcg->cg_frotor = cg->cg_frotor;
else
newcg->cg_frotor = 0;
- if (cg->cg_irotor >= 0 && cg->cg_irotor < fs->fs_ipg)
+ if (cg->cg_irotor < fs->fs_ipg)
newcg->cg_irotor = cg->cg_irotor;
else
newcg->cg_irotor = 0;
Index: src/sbin/fsck_ffs/setup.c
diff -u src/sbin/fsck_ffs/setup.c:1.104 src/sbin/fsck_ffs/setup.c:1.105
--- src/sbin/fsck_ffs/setup.c:1.104 Thu Nov 17 06:40:38 2022
+++ src/sbin/fsck_ffs/setup.c Sat Jan 7 19:41:29 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: setup.c,v 1.104 2022/11/17 06:40:38 chs Exp $ */
+/* $NetBSD: setup.c,v 1.105 2023/01/07 19:41:29 chs Exp $ */
/*
* Copyright (c) 1980, 1986, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)setup.c 8.10 (Berkeley) 5/9/95";
#else
-__RCSID("$NetBSD: setup.c,v 1.104 2022/11/17 06:40:38 chs Exp $");
+__RCSID("$NetBSD: setup.c,v 1.105 2023/01/07 19:41:29 chs Exp $");
#endif
#endif /* not lint */
@@ -1150,7 +1150,7 @@ static int
check_snapinum(void)
{
int loc, loc2, res;
- int *snapinum = &sblock->fs_snapinum[0];
+ uint32_t *snapinum = &sblock->fs_snapinum[0];
res = 0;
Index: src/sbin/fsdb/fsdb.c
diff -u src/sbin/fsdb/fsdb.c:1.53 src/sbin/fsdb/fsdb.c:1.54
--- src/sbin/fsdb/fsdb.c:1.53 Thu Nov 17 06:40:38 2022
+++ src/sbin/fsdb/fsdb.c Sat Jan 7 19:41:29 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: fsdb.c,v 1.53 2022/11/17 06:40:38 chs Exp $ */
+/* $NetBSD: fsdb.c,v 1.54 2023/01/07 19:41:29 chs Exp $ */
/*-
* Copyright (c) 1996, 2017 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: fsdb.c,v 1.53 2022/11/17 06:40:38 chs Exp $");
+__RCSID("$NetBSD: fsdb.c,v 1.54 2023/01/07 19:41:29 chs Exp $");
#endif /* not lint */
#include <sys/types.h>
@@ -620,7 +620,8 @@ CMDFUNC(findblk)
uint32_t *wantedblk32 = NULL;
uint64_t *wantedblk64 = NULL;
struct cg *cgp = cgrp;
- int i, c;
+ int i;
+ uint32_t c;
ocurrent = curinum;
wantedblksize = (argc - 1);
Index: src/sbin/newfs/mkfs.c
diff -u src/sbin/newfs/mkfs.c:1.132 src/sbin/newfs/mkfs.c:1.133
--- src/sbin/newfs/mkfs.c:1.132 Thu Nov 17 06:40:39 2022
+++ src/sbin/newfs/mkfs.c Sat Jan 7 19:41:29 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mkfs.c,v 1.132 2022/11/17 06:40:39 chs Exp $ */
+/* $NetBSD: mkfs.c,v 1.133 2023/01/07 19:41:29 chs Exp $ */
/*
* Copyright (c) 1980, 1989, 1993
@@ -73,7 +73,7 @@
#if 0
static char sccsid[] = "@(#)mkfs.c 8.11 (Berkeley) 5/3/95";
#else
-__RCSID("$NetBSD: mkfs.c,v 1.132 2022/11/17 06:40:39 chs Exp $");
+__RCSID("$NetBSD: mkfs.c,v 1.133 2023/01/07 19:41:29 chs Exp $");
#endif
#endif /* not lint */
@@ -108,7 +108,7 @@ union dinode {
struct ufs2_dinode dp2;
};
-static void initcg(int, const struct timeval *);
+static void initcg(uint32_t, const struct timeval *);
static int fsinit(const struct timeval *, mode_t, uid_t, gid_t);
union Buffer;
static int makedir(union Buffer *, struct direct *, int);
@@ -184,7 +184,8 @@ mkfs(const char *fsys, int fi, int fo,
uint fragsperinodeblk, ncg, u;
uint cgzero;
uint64_t inodeblks, cgall;
- int32_t cylno, i, csfrags;
+ uint32_t cylno;
+ int i, csfrags;
int inodes_per_cg;
struct timeval tv;
long long sizepb;
@@ -773,11 +774,10 @@ mkfs(const char *fsys, int fi, int fo,
* Initialize a cylinder group.
*/
void
-initcg(int cylno, const struct timeval *tv)
+initcg(uint32_t cylno, const struct timeval *tv)
{
daddr_t cbase, dmax;
- int32_t i, d, dlower, dupper, blkno;
- uint32_t u;
+ uint32_t i, d, dlower, dupper, blkno, u;
struct ufs1_dinode *dp1;
struct ufs2_dinode *dp2;
int start;
@@ -849,7 +849,7 @@ initcg(int cylno, const struct timeval *
acg.cg_nextfreeoff = acg.cg_clusteroff +
howmany(ffs_fragstoblks(&sblock, sblock.fs_fpg), CHAR_BIT);
}
- if (acg.cg_nextfreeoff > sblock.fs_cgsize) {
+ if (acg.cg_nextfreeoff > (unsigned)sblock.fs_cgsize) {
printf("Panic: cylinder group too big\n");
fserr(37);
}
Index: src/sbin/resize_ffs/resize_ffs.c
diff -u src/sbin/resize_ffs/resize_ffs.c:1.57 src/sbin/resize_ffs/resize_ffs.c:1.58
--- src/sbin/resize_ffs/resize_ffs.c:1.57 Thu Nov 17 06:40:39 2022
+++ src/sbin/resize_ffs/resize_ffs.c Sat Jan 7 19:41:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: resize_ffs.c,v 1.57 2022/11/17 06:40:39 chs Exp $ */
+/* $NetBSD: resize_ffs.c,v 1.58 2023/01/07 19:41:30 chs Exp $ */
/* From sources sent on February 17, 2003 */
/*-
* As its sole author, I explicitly place this code in the public
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: resize_ffs.c,v 1.57 2022/11/17 06:40:39 chs Exp $");
+__RCSID("$NetBSD: resize_ffs.c,v 1.58 2023/01/07 19:41:30 chs Exp $");
#include <sys/disk.h>
#include <sys/disklabel.h>
@@ -327,7 +327,7 @@ alloconce(size_t nb, const char *tag)
static void
loadcgs(void)
{
- int cg;
+ uint32_t cg;
char *cgp;
cgblksz = roundup(oldsb->fs_cgsize, oldsb->fs_fsize);
@@ -460,7 +460,7 @@ blk_is_clr(unsigned char *bitvec, int bl
* bit simpler than it would otherwise be.
*/
static void
-initcg(int cgn)
+initcg(uint32_t cgn)
{
struct cg *cg; /* The in-core cg, of course */
int64_t base; /* Disk address of cg base */
@@ -658,7 +658,7 @@ find_freespace(unsigned int nfrags)
{
static int hand = 0; /* hand rotates through all frags in the fs */
int cgsize; /* size of the cg hand currently points into */
- int cgn; /* number of cg hand currently points into */
+ uint32_t cgn; /* number of cg hand currently points into */
int fwc; /* frag-within-cg number of frag hand points
* to */
unsigned int run; /* length of run of free frags seen so far */
@@ -711,7 +711,7 @@ static int
find_freeblock(void)
{
static int hand = 0; /* hand rotates through all frags in fs */
- int cgn; /* cg number of cg hand points into */
+ uint32_t cgn; /* cg number of cg hand points into */
int fwc; /* frag-within-cg number of frag hand points
* to */
int cgsize; /* size of cg hand points into */
@@ -754,8 +754,8 @@ static int
find_freeinode(void)
{
static int hand = 0; /* hand rotates through all inodes in fs */
- int cgn; /* cg number of cg hand points into */
- int iwc; /* inode-within-cg number of inode hand points
+ uint32_t cgn; /* cg number of cg hand points into */
+ uint32_t iwc; /* inode-within-cg number of inode hand points
* to */
int secondpass; /* have we wrapped from end to beginning? */
unsigned char *bits; /* cg_inosused()[] for cg hand points into */
@@ -895,7 +895,7 @@ csum_fixup(void)
static void
recompute_fs_dsize(void)
{
- int i;
+ uint32_t i;
newsb->fs_dsize = 0;
for (i = 0; i < newsb->fs_ncg; i++) {
@@ -986,7 +986,7 @@ makegeometry(int chatter)
static void
grow(void)
{
- int i;
+ uint32_t i;
if (makegeometry(1)) {
printf("New fs size %"PRIu64" = old fs size %"PRIu64
@@ -1252,7 +1252,8 @@ blkmove_init(void)
static void
loadinodes(void)
{
- int imax, ino, i, j;
+ int imax, ino, j;
+ uint32_t i;
struct ufs1_dinode *dp1 = NULL;
struct ufs2_dinode *dp2 = NULL;
@@ -1641,8 +1642,8 @@ static void
evict_inodes(struct cg * cg)
{
int inum;
- int i;
int fi;
+ uint32_t i;
inum = newsb->fs_ipg * cg->cg_cgx;
for (i = 0; i < newsb->fs_ipg; i++, inum++) {
@@ -1751,7 +1752,7 @@ update_for_inode_move(void)
static void
shrink(void)
{
- int i;
+ uint32_t i;
if (makegeometry(1)) {
printf("New fs size %"PRIu64" = old fs size %"PRIu64
@@ -1864,7 +1865,7 @@ static void
rescan_blkmaps(int cgn)
{
struct cg *cg;
- int f;
+ uint32_t f;
int b;
int blkfree;
int blkrun;
@@ -1983,7 +1984,7 @@ rescan_inomaps(int cgn)
{
struct cg *cg;
int inum;
- int iwc;
+ uint32_t iwc;
cg = cgs[cgn];
newsb->fs_cstotal.cs_ndir -= cg->cg_cs.cs_ndir;
@@ -2023,7 +2024,7 @@ rescan_inomaps(int cgn)
static void
flush_cgs(void)
{
- int i;
+ uint32_t i;
for (i = 0; i < newsb->fs_ncg; i++) {
progress_bar(special, "flush cg",
@@ -2057,7 +2058,7 @@ flush_cgs(void)
static void
write_sbs(void)
{
- int i;
+ uint32_t i;
if (newsb->fs_magic == FS_UFS1_MAGIC &&
(newsb->fs_old_flags & FS_FLAGS_UPDATED) == 0) {
Index: src/sbin/tunefs/tunefs.c
diff -u src/sbin/tunefs/tunefs.c:1.57 src/sbin/tunefs/tunefs.c:1.58
--- src/sbin/tunefs/tunefs.c:1.57 Mon Dec 19 21:13:16 2022
+++ src/sbin/tunefs/tunefs.c Sat Jan 7 19:41:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: tunefs.c,v 1.57 2022/12/19 21:13:16 chs Exp $ */
+/* $NetBSD: tunefs.c,v 1.58 2023/01/07 19:41:30 chs Exp $ */
/*
* Copyright (c) 1983, 1993
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1983, 19
#if 0
static char sccsid[] = "@(#)tunefs.c 8.3 (Berkeley) 5/3/95";
#else
-__RCSID("$NetBSD: tunefs.c,v 1.57 2022/12/19 21:13:16 chs Exp $");
+__RCSID("$NetBSD: tunefs.c,v 1.58 2023/01/07 19:41:30 chs Exp $");
#endif
#endif /* not lint */
@@ -62,6 +62,7 @@ __RCSID("$NetBSD: tunefs.c,v 1.57 2022/1
#include <fcntl.h>
#include <fstab.h>
#include <paths.h>
+#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -103,11 +104,12 @@ __dead static void usage(void);
int
main(int argc, char *argv[])
{
- int i, ch, aflag, pflag, Aflag, Fflag, Nflag, openflags;
+ int ch, aflag, pflag, Aflag, Fflag, Nflag, openflags;
const char *special, *chg[2];
char device[MAXPATHLEN];
int maxbpg, minfree, optim, secsize;
- int avgfilesize, avgfpdir, active;
+ uint32_t i, avgfilesize, avgfpdir;
+ bool active;
long long logfilesize;
int secshift, fsbtodb;
const char *avalue, *pvalue, *name;
@@ -241,7 +243,7 @@ main(int argc, char *argv[])
getsb(&sblock, special);
#define CHANGEVAL(old, new, type, suffix) do \
- if ((new) != -1) { \
+ if ((uint32_t)(new) != (uint32_t)-1) { \
if ((new) == (old)) \
warnx("%s remains unchanged at %d%s", \
(type), (old), (suffix)); \
Index: src/sys/ufs/ffs/ffs_alloc.c
diff -u src/sys/ufs/ffs/ffs_alloc.c:1.171 src/sys/ufs/ffs/ffs_alloc.c:1.172
--- src/sys/ufs/ffs/ffs_alloc.c:1.171 Sat Apr 23 16:22:23 2022
+++ src/sys/ufs/ffs/ffs_alloc.c Sat Jan 7 19:41:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_alloc.c,v 1.171 2022/04/23 16:22:23 hannken Exp $ */
+/* $NetBSD: ffs_alloc.c,v 1.172 2023/01/07 19:41:30 chs Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_alloc.c,v 1.171 2022/04/23 16:22:23 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_alloc.c,v 1.172 2023/01/07 19:41:30 chs Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -107,14 +107,14 @@ __KERNEL_RCSID(0, "$NetBSD: ffs_alloc.c,
#include <uvm/uvm_page.h>
#endif
-static daddr_t ffs_alloccg(struct inode *, int, daddr_t, int, int, int);
+static daddr_t ffs_alloccg(struct inode *, u_int, daddr_t, int, int, int);
static daddr_t ffs_alloccgblk(struct inode *, struct buf *, daddr_t, int, int);
static ino_t ffs_dirpref(struct inode *);
-static daddr_t ffs_fragextend(struct inode *, int, daddr_t, int, int);
+static daddr_t ffs_fragextend(struct inode *, u_int, daddr_t, int, int);
static void ffs_fserr(struct fs *, kauth_cred_t, const char *);
-static daddr_t ffs_hashalloc(struct inode *, int, daddr_t, int, int, int,
- daddr_t (*)(struct inode *, int, daddr_t, int, int, int));
-static daddr_t ffs_nodealloccg(struct inode *, int, daddr_t, int, int, int);
+static daddr_t ffs_hashalloc(struct inode *, u_int, daddr_t, int, int, int,
+ daddr_t (*)(struct inode *, u_int, daddr_t, int, int, int));
+static daddr_t ffs_nodealloccg(struct inode *, u_int, daddr_t, int, int, int);
static int32_t ffs_mapsearch(struct fs *, struct cg *,
daddr_t, int);
static void ffs_blkfree_common(struct ufsmount *, struct fs *, dev_t, struct buf *,
@@ -179,7 +179,7 @@ ffs_alloc(struct inode *ip, daddr_t lbn,
struct ufsmount *ump;
struct fs *fs;
daddr_t bno;
- int cg;
+ u_int cg;
#if defined(QUOTA) || defined(QUOTA2)
int error;
#endif
@@ -311,7 +311,8 @@ ffs_realloccg(struct inode *ip, daddr_t
struct ufsmount *ump;
struct fs *fs;
struct buf *bp;
- int cg, request, error;
+ u_int cg, request;
+ int error;
daddr_t bno;
fs = ip->i_fs;
@@ -571,7 +572,8 @@ ffs_valloc(struct vnode *pvp, int mode,
struct inode *pip;
struct fs *fs;
ino_t ino, ipref;
- int cg, error;
+ u_int cg;
+ int error;
UFS_WAPBL_JUNLOCK_ASSERT(pvp->v_mount);
@@ -637,12 +639,12 @@ static ino_t
ffs_dirpref(struct inode *pip)
{
register struct fs *fs;
- int cg, prefcg;
- int64_t dirsize, cgsize, curdsz;
- int avgifree, avgbfree, avgndir;
- int minifree, minbfree, maxndir;
- int mincg, minndir;
- int maxcontigdirs;
+ u_int cg, prefcg;
+ uint64_t dirsize, cgsize, curdsz;
+ u_int avgifree, avgbfree, avgndir;
+ u_int minifree, minbfree, maxndir;
+ u_int mincg, minndir;
+ u_int maxcontigdirs;
KASSERT(mutex_owned(&pip->i_ump->um_lock));
@@ -770,8 +772,8 @@ ffs_blkpref_ufs1(struct inode *ip, daddr
int32_t *bap /* XXX ondisk32 */)
{
struct fs *fs;
- int cg;
- int avgbfree, startcg;
+ u_int cg;
+ u_int avgbfree, startcg;
KASSERT(mutex_owned(&ip->i_ump->um_lock));
@@ -834,8 +836,8 @@ ffs_blkpref_ufs2(struct inode *ip, daddr
int64_t *bap)
{
struct fs *fs;
- int cg;
- int avgbfree, startcg;
+ u_int cg;
+ u_int avgbfree, startcg;
KASSERT(mutex_owned(&ip->i_ump->um_lock));
@@ -908,15 +910,15 @@ ffs_blkpref_ufs2(struct inode *ip, daddr
*/
/*VARARGS5*/
static daddr_t
-ffs_hashalloc(struct inode *ip, int cg, daddr_t pref,
+ffs_hashalloc(struct inode *ip, u_int cg, daddr_t pref,
int size /* size for data blocks, mode for inodes */,
int realsize,
int flags,
- daddr_t (*allocator)(struct inode *, int, daddr_t, int, int, int))
+ daddr_t (*allocator)(struct inode *, u_int, daddr_t, int, int, int))
{
struct fs *fs;
daddr_t result;
- int i, icg = cg;
+ u_int i, icg = cg;
fs = ip->i_fs;
/*
@@ -966,7 +968,7 @@ ffs_hashalloc(struct inode *ip, int cg,
* => returns with um_lock released on success, held on failure
*/
static daddr_t
-ffs_fragextend(struct inode *ip, int cg, daddr_t bprev, int osize, int nsize)
+ffs_fragextend(struct inode *ip, u_int cg, daddr_t bprev, int osize, int nsize)
{
struct ufsmount *ump;
struct fs *fs;
@@ -1046,7 +1048,7 @@ ffs_fragextend(struct inode *ip, int cg,
* and if it is, allocate it.
*/
static daddr_t
-ffs_alloccg(struct inode *ip, int cg, daddr_t bpref, int size, int realsize,
+ffs_alloccg(struct inode *ip, u_int cg, daddr_t bpref, int size, int realsize,
int flags)
{
struct ufsmount *ump;
@@ -1257,7 +1259,7 @@ gotit:
* inode in the specified cylinder group.
*/
static daddr_t
-ffs_nodealloccg(struct inode *ip, int cg, daddr_t ipref, int mode, int realsize,
+ffs_nodealloccg(struct inode *ip, u_int cg, daddr_t ipref, int mode, int realsize,
int flags)
{
struct ufsmount *ump = ip->i_ump;
@@ -1416,7 +1418,7 @@ gotit:
bwrite(bp);
} else
bdwrite(bp);
- return (cg * fs->fs_ipg + ipref);
+ return ((ino_t)(cg * fs->fs_ipg + ipref));
fail:
if (bp != NULL)
brelse(bp, 0);
@@ -1456,7 +1458,8 @@ ffs_blkalloc_ump(struct ufsmount *ump, d
struct cg *cgp;
struct buf *bp;
int32_t fragno, cgbno;
- int i, error, cg, blk, frags, bbase;
+ int i, error, blk, frags, bbase;
+ u_int cg;
u_int8_t *blksfree;
const int needswap = UFS_FSNEEDSWAP(fs);
@@ -1560,7 +1563,8 @@ ffs_blkfree_cg(struct fs *fs, struct vno
struct buf *bp;
struct ufsmount *ump;
daddr_t cgblkno;
- int error, cg;
+ int error;
+ u_int cg;
dev_t dev;
const bool devvp_is_snapshot = (devvp->v_type != VBLK);
const int needswap = UFS_FSNEEDSWAP(fs);
@@ -1870,7 +1874,8 @@ ffs_blkfree_common(struct ufsmount *ump,
{
struct cg *cgp;
int32_t fragno, cgbno;
- int i, cg, blk, frags, bbase;
+ int i, blk, frags, bbase;
+ u_int cg;
u_int8_t *blksfree;
const int needswap = UFS_FSNEEDSWAP(fs);
@@ -1993,7 +1998,8 @@ ffs_freefile(struct mount *mp, ino_t ino
struct vnode *devvp;
struct cg *cgp;
struct buf *bp;
- int error, cg;
+ int error;
+ u_int cg;
daddr_t cgbno;
dev_t dev;
const int needswap = UFS_FSNEEDSWAP(fs);
@@ -2003,7 +2009,7 @@ ffs_freefile(struct mount *mp, ino_t ino
dev = devvp->v_rdev;
cgbno = FFS_FSBTODB(fs, cgtod(fs, cg));
- if ((u_int)ino >= fs->fs_ipg * fs->fs_ncg)
+ if (ino >= fs->fs_ipg * fs->fs_ncg)
panic("%s: range: dev = 0x%llx, ino = %llu, fs = %s", __func__,
(long long)dev, (unsigned long long)ino, fs->fs_fsmnt);
error = bread(devvp, cgbno, (int)fs->fs_cgsize,
@@ -2041,7 +2047,7 @@ ffs_freefile_snap(struct fs *fs, struct
dev = VTOI(devvp)->i_devvp->v_rdev;
ump = VFSTOUFS(devvp->v_mount);
cgbno = ffs_fragstoblks(fs, cgtod(fs, cg));
- if ((u_int)ino >= fs->fs_ipg * fs->fs_ncg)
+ if (ino >= fs->fs_ipg * fs->fs_ncg)
panic("%s: range: dev = 0x%llx, ino = %llu, fs = %s", __func__,
(unsigned long long)dev, (unsigned long long)ino,
fs->fs_fsmnt);
@@ -2066,10 +2072,11 @@ static void
ffs_freefile_common(struct ufsmount *ump, struct fs *fs, dev_t dev,
struct buf *bp, ino_t ino, int mode, bool devvp_is_snapshot)
{
- int cg;
+ u_int cg;
struct cg *cgp;
u_int8_t *inosused;
const int needswap = UFS_FSNEEDSWAP(fs);
+ ino_t cgino;
cg = ino_to_cg(fs, ino);
cgp = (struct cg *)bp->b_data;
@@ -2078,20 +2085,19 @@ ffs_freefile_common(struct ufsmount *ump
(fs->fs_old_flags & FS_FLAGS_UPDATED))
cgp->cg_time = ufs_rw64(time_second, needswap);
inosused = cg_inosused(cgp, needswap);
- ino %= fs->fs_ipg;
- if (isclr(inosused, ino)) {
+ cgino = ino % fs->fs_ipg;
+ if (isclr(inosused, cgino)) {
printf("ifree: dev = 0x%llx, ino = %llu, fs = %s\n",
- (unsigned long long)dev, (unsigned long long)ino +
- cg * fs->fs_ipg, fs->fs_fsmnt);
+ (unsigned long long)dev, (unsigned long long)ino,
+ fs->fs_fsmnt);
if (fs->fs_ronly == 0)
panic("%s: freeing free inode", __func__);
}
- clrbit(inosused, ino);
+ clrbit(inosused, cgino);
if (!devvp_is_snapshot)
- UFS_WAPBL_UNREGISTER_INODE(ump->um_mountp,
- ino + cg * fs->fs_ipg, mode);
- if (ino < ufs_rw32(cgp->cg_irotor, needswap))
- cgp->cg_irotor = ufs_rw32(ino, needswap);
+ UFS_WAPBL_UNREGISTER_INODE(ump->um_mountp, ino, mode);
+ if (cgino < ufs_rw32(cgp->cg_irotor, needswap))
+ cgp->cg_irotor = ufs_rw32(cgino, needswap);
ufs_add32(cgp->cg_cs.cs_nifree, 1, needswap);
mutex_enter(&ump->um_lock);
fs->fs_cstotal.cs_nifree++;
@@ -2115,7 +2121,8 @@ ffs_checkfreefile(struct fs *fs, struct
struct cg *cgp;
struct buf *bp;
daddr_t cgbno;
- int ret, cg;
+ int ret;
+ u_int cg;
u_int8_t *inosused;
const bool devvp_is_snapshot = (devvp->v_type != VBLK);
@@ -2126,7 +2133,7 @@ ffs_checkfreefile(struct fs *fs, struct
cgbno = ffs_fragstoblks(fs, cgtod(fs, cg));
else
cgbno = FFS_FSBTODB(fs, cgtod(fs, cg));
- if ((u_int)ino >= fs->fs_ipg * fs->fs_ncg)
+ if (ino >= fs->fs_ipg * fs->fs_ncg)
return 1;
if (bread(devvp, cgbno, (int)fs->fs_cgsize, 0, &bp)) {
return 1;
Index: src/sys/ufs/ffs/ffs_extern.h
diff -u src/sys/ufs/ffs/ffs_extern.h:1.87 src/sys/ufs/ffs/ffs_extern.h:1.88
--- src/sys/ufs/ffs/ffs_extern.h:1.87 Mon Nov 28 04:52:04 2022
+++ src/sys/ufs/ffs/ffs_extern.h Sat Jan 7 19:41:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_extern.h,v 1.87 2022/11/28 04:52:04 chs Exp $ */
+/* $NetBSD: ffs_extern.h,v 1.88 2023/01/07 19:41:30 chs Exp $ */
/*-
* Copyright (c) 1991, 1993, 1994
@@ -202,7 +202,7 @@ void ffs_cg_swap(struct cg *, struct cg
void ffs_load_inode(struct buf *, struct inode *, struct fs *, ino_t);
int ffs_getblk(struct vnode *, daddr_t, daddr_t, int, bool, buf_t **);
#endif /* defined(_KERNEL) */
-void ffs_fragacct(struct fs *, int, int32_t[], int, int);
+void ffs_fragacct(struct fs *, int, uint32_t[], int, int);
int ffs_isblock(struct fs *, u_char *, int32_t);
int ffs_isfreeblock(struct fs *, u_char *, int32_t);
void ffs_clrblock(struct fs *, u_char *, int32_t);
Index: src/sys/ufs/ffs/ffs_subr.c
diff -u src/sys/ufs/ffs/ffs_subr.c:1.53 src/sys/ufs/ffs/ffs_subr.c:1.54
--- src/sys/ufs/ffs/ffs_subr.c:1.53 Tue May 24 06:28:02 2022
+++ src/sys/ufs/ffs/ffs_subr.c Sat Jan 7 19:41:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_subr.c,v 1.53 2022/05/24 06:28:02 andvar Exp $ */
+/* $NetBSD: ffs_subr.c,v 1.54 2023/01/07 19:41:30 chs Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1993
@@ -36,7 +36,7 @@
#endif
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_subr.c,v 1.53 2022/05/24 06:28:02 andvar Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_subr.c,v 1.54 2023/01/07 19:41:30 chs Exp $");
#include <sys/param.h>
@@ -141,7 +141,7 @@ ffs_getblk(struct vnode *vp, daddr_t lbl
* of some frags.
*/
void
-ffs_fragacct(struct fs *fs, int fragmap, int32_t fraglist[], int cnt,
+ffs_fragacct(struct fs *fs, int fragmap, uint32_t fraglist[], int cnt,
int needswap)
{
int inblk;
Index: src/sys/ufs/ffs/fs.h
diff -u src/sys/ufs/ffs/fs.h:1.70 src/sys/ufs/ffs/fs.h:1.71
--- src/sys/ufs/ffs/fs.h:1.70 Thu Nov 17 06:40:40 2022
+++ src/sys/ufs/ffs/fs.h Sat Jan 7 19:41:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: fs.h,v 1.70 2022/11/17 06:40:40 chs Exp $ */
+/* $NetBSD: fs.h,v 1.71 2023/01/07 19:41:30 chs Exp $ */
/*
* Copyright (c) 1982, 1986, 1993
@@ -265,7 +265,7 @@ struct fs {
int32_t fs_old_time; /* last time written */
int32_t fs_old_size; /* number of blocks in fs */
int32_t fs_old_dsize; /* number of data blocks in fs */
- int32_t fs_ncg; /* number of cylinder groups */
+ u_int32_t fs_ncg; /* number of cylinder groups */
int32_t fs_bsize; /* size of basic blocks in fs */
int32_t fs_fsize; /* size of frag blocks in fs */
int32_t fs_frag; /* number of frags in a block in fs */
@@ -288,7 +288,7 @@ struct fs {
int32_t fs_spare1[2]; /* old fs_csmask */
/* old fs_csshift */
int32_t fs_nindir; /* value of FFS_NINDIR */
- int32_t fs_inopb; /* value of FFS_INOPB */
+ u_int32_t fs_inopb; /* value of FFS_INOPB */
int32_t fs_old_nspf; /* value of NSPF */
/* yet another configuration parameter */
int32_t fs_optim; /* optimization preference, see below */
@@ -308,7 +308,7 @@ struct fs {
int32_t fs_old_spc; /* sectors per cylinder */
int32_t fs_old_ncyl; /* cylinders in file system */
int32_t fs_old_cpg; /* cylinders per group */
- int32_t fs_ipg; /* inodes per group */
+ u_int32_t fs_ipg; /* inodes per group */
int32_t fs_fpg; /* blocks per group * fs_frag */
/* this data must be re-computed after crashes */
struct csum fs_old_cstotal; /* cylinder summary information */
@@ -348,11 +348,11 @@ struct fs {
int64_t fs_dsize; /* number of data blocks in fs */
int64_t fs_csaddr; /* blk addr of cyl grp summary area */
int64_t fs_pendingblocks; /* blocks in process of being freed */
- int32_t fs_pendinginodes; /* inodes in process of being freed */
- int32_t fs_snapinum[FSMAXSNAP];/* list of snapshot inode numbers */
+ u_int32_t fs_pendinginodes; /* inodes in process of being freed */
+ uint32_t fs_snapinum[FSMAXSNAP];/* list of snapshot inode numbers */
/* back to stuff that has been around a while */
- int32_t fs_avgfilesize; /* expected average file size */
- int32_t fs_avgfpdir; /* expected # of files per directory */
+ u_int32_t fs_avgfilesize; /* expected average file size */
+ u_int32_t fs_avgfpdir; /* expected # of files per directory */
int32_t fs_save_cgsize; /* save real cg size to use fs_bsize */
int32_t fs_sparecon32[26]; /* reserved for future constants */
uint32_t fs_flags; /* see FS_ flags below */
@@ -507,25 +507,25 @@ struct cg {
int32_t cg_firstfield; /* historic cyl groups linked list */
int32_t cg_magic; /* magic number */
int32_t cg_old_time; /* time last written */
- int32_t cg_cgx; /* we are the cgx'th cylinder group */
+ u_int32_t cg_cgx; /* we are the cgx'th cylinder group */
int16_t cg_old_ncyl; /* number of cyl's this cg */
int16_t cg_old_niblk; /* number of inode blocks this cg */
- int32_t cg_ndblk; /* number of data blocks this cg */
- struct csum cg_cs; /* cylinder summary information */
- int32_t cg_rotor; /* position of last used block */
- int32_t cg_frotor; /* position of last used frag */
- int32_t cg_irotor; /* position of last used inode */
- int32_t cg_frsum[MAXFRAG]; /* counts of available frags */
+ u_int32_t cg_ndblk; /* number of data blocks this cg */
+ struct csum cg_cs; /* cylinder summary information */
+ u_int32_t cg_rotor; /* position of last used block */
+ u_int32_t cg_frotor; /* position of last used frag */
+ u_int32_t cg_irotor; /* position of last used inode */
+ u_int32_t cg_frsum[MAXFRAG]; /* counts of available frags */
int32_t cg_old_btotoff; /* (int32) block totals per cylinder */
int32_t cg_old_boff; /* (u_int16) free block positions */
- int32_t cg_iusedoff; /* (u_int8) used inode map */
- int32_t cg_freeoff; /* (u_int8) free block map */
- int32_t cg_nextfreeoff; /* (u_int8) next available space */
- int32_t cg_clustersumoff; /* (u_int32) counts of avail clusters */
- int32_t cg_clusteroff; /* (u_int8) free cluster map */
- int32_t cg_nclusterblks; /* number of clusters this cg */
- int32_t cg_niblk; /* number of inode blocks this cg */
- int32_t cg_initediblk; /* last initialized inode */
+ u_int32_t cg_iusedoff; /* (u_int8) used inode map */
+ u_int32_t cg_freeoff; /* (u_int8) free block map */
+ u_int32_t cg_nextfreeoff; /* (u_int8) next available space */
+ u_int32_t cg_clustersumoff; /* (u_int32) counts of avail clusters */
+ u_int32_t cg_clusteroff; /* (u_int8) free cluster map */
+ u_int32_t cg_nclusterblks; /* number of clusters this cg */
+ u_int32_t cg_niblk; /* number of inode blocks this cg */
+ u_int32_t cg_initediblk; /* last initialized inode */
int32_t cg_sparecon32[3]; /* reserved for future use */
int64_t cg_time; /* time last written */
int64_t cg_sparecon64[3]; /* reserved for future use */
@@ -647,11 +647,11 @@ struct ocg {
* inode number to cylinder group number.
* inode number to file system block address.
*/
-#define ino_to_cg(fs, x) ((x) / (fs)->fs_ipg)
+#define ino_to_cg(fs, x) (((ino_t)(x)) / (fs)->fs_ipg)
#define ino_to_fsba(fs, x) \
- ((daddr_t)(cgimin(fs, ino_to_cg(fs, x)) + \
- (ffs_blkstofrags((fs), (((x) % (fs)->fs_ipg) / FFS_INOPB(fs))))))
-#define ino_to_fsbo(fs, x) ((x) % FFS_INOPB(fs))
+ ((daddr_t)(cgimin(fs, ino_to_cg(fs, (ino_t)(x))) + \
+ (ffs_blkstofrags((fs), ((((ino_t)(x)) % (fs)->fs_ipg) / FFS_INOPB(fs))))))
+#define ino_to_fsbo(fs, x) (((ino_t)(x)) % FFS_INOPB(fs))
/*
* Give cylinder group number for a file system block.
Index: src/usr.sbin/dumpfs/dumpfs.c
diff -u src/usr.sbin/dumpfs/dumpfs.c:1.67 src/usr.sbin/dumpfs/dumpfs.c:1.68
--- src/usr.sbin/dumpfs/dumpfs.c:1.67 Mon Dec 19 18:51:42 2022
+++ src/usr.sbin/dumpfs/dumpfs.c Sat Jan 7 19:41:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: dumpfs.c,v 1.67 2022/12/19 18:51:42 chs Exp $ */
+/* $NetBSD: dumpfs.c,v 1.68 2023/01/07 19:41:30 chs Exp $ */
/*
* Copyright (c) 1983, 1992, 1993
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1983, 19
#if 0
static char sccsid[] = "@(#)dumpfs.c 8.5 (Berkeley) 4/29/95";
#else
-__RCSID("$NetBSD: dumpfs.c,v 1.67 2022/12/19 18:51:42 chs Exp $");
+__RCSID("$NetBSD: dumpfs.c,v 1.68 2023/01/07 19:41:30 chs Exp $");
#endif
#endif /* not lint */
@@ -493,6 +493,7 @@ print_cgsum(const char *name, int fd)
{
struct csum *ccsp;
int i, j, size;
+ uint32_t cgnum;
afs.fs_csp = calloc(1, afs.fs_cssize);
for (i = 0, j = 0; i < afs.fs_cssize; i += afs.fs_bsize, j++) {
@@ -510,8 +511,8 @@ print_cgsum(const char *name, int fd)
}
printf("cs[].cs_(nbfree,ndir,nifree,nffree):\n\t");
- for (i = 0; i < afs.fs_ncg; i++) {
- struct csum *cs = &afs.fs_cs(&afs, i);
+ for (cgnum = 0; cgnum < afs.fs_ncg; cgnum++) {
+ struct csum *cs = &afs.fs_cs(&afs, cgnum);
if (i && i % 4 == 0)
printf("\n\t");
printf("(%d,%d,%d,%d) ",
@@ -534,7 +535,7 @@ static int
print_alt_super(const char *name, int fd)
{
union fsun alt;
- int i;
+ uint32_t i;
off_t loc;
uint16_t alt_opostblsave[32*8];
int save_printold;
@@ -560,7 +561,7 @@ print_alt_super(const char *name, int fd
static int
print_cginfo(const char *name, int fd)
{
- int i;
+ uint32_t i;
printf("\n");
for (i = 0; i < afs.fs_ncg; i++) {
@@ -578,7 +579,8 @@ print_inodes(const char *name, int fd, i
{
void *ino_buf = malloc(afs.fs_bsize);
void (*print_inode)(int, int, void *);
- int i, inum;
+ ino_t inum;
+ uint32_t i;
if (ino_buf == 0)
return 1;
Index: src/usr.sbin/makefs/Makefile
diff -u src/usr.sbin/makefs/Makefile:1.39 src/usr.sbin/makefs/Makefile:1.40
--- src/usr.sbin/makefs/Makefile:1.39 Sat Apr 9 14:38:47 2022
+++ src/usr.sbin/makefs/Makefile Sat Jan 7 19:41:30 2023
@@ -1,8 +1,6 @@
-# $NetBSD: Makefile,v 1.39 2022/04/09 14:38:47 riastradh Exp $
+# $NetBSD: Makefile,v 1.40 2023/01/07 19:41:30 chs Exp $
#
-WARNS?= 5
-
.include <bsd.own.mk>
PROG= makefs
Index: src/usr.sbin/makefs/ffs.c
diff -u src/usr.sbin/makefs/ffs.c:1.73 src/usr.sbin/makefs/ffs.c:1.74
--- src/usr.sbin/makefs/ffs.c:1.73 Thu Nov 17 06:40:41 2022
+++ src/usr.sbin/makefs/ffs.c Sat Jan 7 19:41:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs.c,v 1.73 2022/11/17 06:40:41 chs Exp $ */
+/* $NetBSD: ffs.c,v 1.74 2023/01/07 19:41:30 chs Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@@ -71,7 +71,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(__lint)
-__RCSID("$NetBSD: ffs.c,v 1.73 2022/11/17 06:40:41 chs Exp $");
+__RCSID("$NetBSD: ffs.c,v 1.74 2023/01/07 19:41:30 chs Exp $");
#endif /* !__lint */
#include <sys/param.h>
@@ -1067,7 +1067,7 @@ ffs_write_inode(union dinode *dp, uint32
struct ufs2_dinode *dp2, *dip;
struct cg *cgp;
struct fs *fs;
- int cg, cgino, i;
+ uint32_t cg, cgino, i;
daddr_t d;
char sbbuf[FFS_MAXBSIZE];
uint32_t initediblk;
Index: src/usr.sbin/makefs/ffs/ffs_alloc.c
diff -u src/usr.sbin/makefs/ffs/ffs_alloc.c:1.30 src/usr.sbin/makefs/ffs/ffs_alloc.c:1.31
--- src/usr.sbin/makefs/ffs/ffs_alloc.c:1.30 Sat Apr 9 10:05:35 2022
+++ src/usr.sbin/makefs/ffs/ffs_alloc.c Sat Jan 7 19:41:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_alloc.c,v 1.30 2022/04/09 10:05:35 riastradh Exp $ */
+/* $NetBSD: ffs_alloc.c,v 1.31 2023/01/07 19:41:30 chs Exp $ */
/* From: NetBSD: ffs_alloc.c,v 1.50 2001/09/06 02:16:01 lukem Exp */
/*
@@ -47,7 +47,7 @@
#include <sys/cdefs.h>
#if defined(__RCSID) && !defined(__lint)
-__RCSID("$NetBSD: ffs_alloc.c,v 1.30 2022/04/09 10:05:35 riastradh Exp $");
+__RCSID("$NetBSD: ffs_alloc.c,v 1.31 2023/01/07 19:41:30 chs Exp $");
#endif /* !__lint */
#include <sys/param.h>
@@ -70,7 +70,7 @@ static int scanc(u_int, const u_char *,
static daddr_t ffs_alloccg(struct inode *, int, daddr_t, int);
static daddr_t ffs_alloccgblk(struct inode *, struct buf *, daddr_t);
-static daddr_t ffs_hashalloc(struct inode *, int, daddr_t, int,
+static daddr_t ffs_hashalloc(struct inode *, uint32_t, daddr_t, int,
daddr_t (*)(struct inode *, int, daddr_t, int));
static int32_t ffs_mapsearch(struct fs *, struct cg *, daddr_t, int);
@@ -159,8 +159,8 @@ daddr_t
ffs_blkpref_ufs1(struct inode *ip, daddr_t lbn, int indx, int32_t *bap)
{
struct fs *fs;
- int cg;
- int avgbfree, startcg;
+ uint32_t cg, startcg;
+ int avgbfree;
fs = ip->i_fs;
if (indx % fs->fs_maxbpg == 0 || bap[indx - 1] == 0) {
@@ -198,8 +198,8 @@ daddr_t
ffs_blkpref_ufs2(struct inode *ip, daddr_t lbn, int indx, int64_t *bap)
{
struct fs *fs;
- int cg;
- int avgbfree, startcg;
+ uint32_t cg, startcg;
+ int avgbfree;
fs = ip->i_fs;
if (indx % fs->fs_maxbpg == 0 || bap[indx - 1] == 0) {
@@ -247,12 +247,12 @@ ffs_blkpref_ufs2(struct inode *ip, daddr
*/
/*VARARGS5*/
static daddr_t
-ffs_hashalloc(struct inode *ip, int cg, daddr_t pref, int size,
+ffs_hashalloc(struct inode *ip, uint32_t cg, daddr_t pref, int size,
daddr_t (*allocator)(struct inode *, int, daddr_t, int))
{
struct fs *fs;
daddr_t result;
- int i, icg = cg;
+ uint32_t i, icg = cg;
fs = ip->i_fs;
/*
Index: src/usr.sbin/makefs/ffs/ffs_extern.h
diff -u src/usr.sbin/makefs/ffs/ffs_extern.h:1.8 src/usr.sbin/makefs/ffs/ffs_extern.h:1.9
--- src/usr.sbin/makefs/ffs/ffs_extern.h:1.8 Sat Apr 9 10:05:35 2022
+++ src/usr.sbin/makefs/ffs/ffs_extern.h Sat Jan 7 19:41:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_extern.h,v 1.8 2022/04/09 10:05:35 riastradh Exp $ */
+/* $NetBSD: ffs_extern.h,v 1.9 2023/01/07 19:41:30 chs Exp $ */
/* From: NetBSD: ffs_extern.h,v 1.19 2001/08/17 02:18:48 lukem Exp */
/*-
@@ -66,7 +66,7 @@ void ffs_csum_swap(struct csum *, struct
void ffs_cg_swap(struct cg *, struct cg *, struct fs *);
/* ffs_subr.c */
-void ffs_fragacct(struct fs *, int, int32_t[], int, int);
+void ffs_fragacct(struct fs *, int, uint32_t[], int, int);
int ffs_isblock(struct fs *, u_char *, int32_t);
int ffs_isfreeblock(struct fs *, u_char *, int32_t);
void ffs_clrblock(struct fs *, u_char *, int32_t);
Index: src/usr.sbin/makefs/ffs/mkfs.c
diff -u src/usr.sbin/makefs/ffs/mkfs.c:1.41 src/usr.sbin/makefs/ffs/mkfs.c:1.42
--- src/usr.sbin/makefs/ffs/mkfs.c:1.41 Thu Nov 17 06:40:41 2022
+++ src/usr.sbin/makefs/ffs/mkfs.c Sat Jan 7 19:41:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: mkfs.c,v 1.41 2022/11/17 06:40:41 chs Exp $ */
+/* $NetBSD: mkfs.c,v 1.42 2023/01/07 19:41:30 chs Exp $ */
/*
* Copyright (c) 2002 Networks Associates Technology, Inc.
@@ -48,7 +48,7 @@
static char sccsid[] = "@(#)mkfs.c 8.11 (Berkeley) 5/3/95";
#else
#ifdef __RCSID
-__RCSID("$NetBSD: mkfs.c,v 1.41 2022/11/17 06:40:41 chs Exp $");
+__RCSID("$NetBSD: mkfs.c,v 1.42 2023/01/07 19:41:30 chs Exp $");
#endif
#endif
#endif /* not lint */
@@ -75,7 +75,7 @@ __RCSID("$NetBSD: mkfs.c,v 1.41 2022/11/
#include "ffs/ffs_extern.h"
#include "ffs/newfs_extern.h"
-static void initcg(int, time_t, const fsinfo_t *);
+static void initcg(uint32_t, time_t, const fsinfo_t *);
static int ilog2(int);
static int count_digits(int);
@@ -141,7 +141,8 @@ struct fs *
ffs_mkfs(const char *fsys, const fsinfo_t *fsopts, time_t tstamp)
{
int fragsperinode, optimalfpg, origdensity, minfpg, lastminfpg;
- int32_t cylno, i, csfrags;
+ uint32_t cylno, i;
+ int32_t csfrags;
long long sizepb;
void *space;
int size;
@@ -443,7 +444,7 @@ ffs_mkfs(const char *fsys, const fsinfo_
sblock.fs_maxcluster = lp = space;
for (i = 0; i < sblock.fs_ncg; i++)
- *lp++ = sblock.fs_contigsumsize;
+ *lp++ = sblock.fs_contigsumsize;
}
sblock.fs_sbsize = ffs_fragroundup(&sblock, sizeof(struct fs));
@@ -566,7 +567,8 @@ ffs_mkfs(const char *fsys, const fsinfo_
void
ffs_write_superblock(struct fs *fs, const fsinfo_t *fsopts)
{
- int cylno, size, blks, i, saveflag;
+ int size, blks, i, saveflag;
+ uint32_t cylno;
void *space;
char *wrbuf;
@@ -606,10 +608,10 @@ ffs_write_superblock(struct fs *fs, cons
* Initialize a cylinder group.
*/
static void
-initcg(int cylno, time_t utime, const fsinfo_t *fsopts)
+initcg(uint32_t cylno, time_t utime, const fsinfo_t *fsopts)
{
daddr_t cbase, dmax;
- int i, j, d, dlower, dupper, blkno;
+ uint32_t i, j, d, dlower, dupper, blkno;
struct ufs1_dinode *dp1;
struct ufs2_dinode *dp2;
int start;
@@ -671,7 +673,7 @@ initcg(int cylno, time_t utime, const fs
acg.cg_nextfreeoff = acg.cg_clusteroff +
howmany(ffs_fragstoblks(&sblock, sblock.fs_fpg), CHAR_BIT);
}
- if (acg.cg_nextfreeoff > sblock.fs_cgsize) {
+ if (acg.cg_nextfreeoff > (unsigned)sblock.fs_cgsize) {
printf("Panic: cylinder group too big\n");
exit(37);
}
Index: src/usr.sbin/quotacheck/quotacheck.c
diff -u src/usr.sbin/quotacheck/quotacheck.c:1.50 src/usr.sbin/quotacheck/quotacheck.c:1.51
--- src/usr.sbin/quotacheck/quotacheck.c:1.50 Thu Nov 17 06:40:41 2022
+++ src/usr.sbin/quotacheck/quotacheck.c Sat Jan 7 19:41:30 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: quotacheck.c,v 1.50 2022/11/17 06:40:41 chs Exp $ */
+/* $NetBSD: quotacheck.c,v 1.51 2023/01/07 19:41:30 chs Exp $ */
/*
* Copyright (c) 1980, 1990, 1993
@@ -42,7 +42,7 @@ __COPYRIGHT("@(#) Copyright (c) 1980, 19
#if 0
static char sccsid[] = "@(#)quotacheck.c 8.6 (Berkeley) 4/28/95";
#else
-__RCSID("$NetBSD: quotacheck.c,v 1.50 2022/11/17 06:40:41 chs Exp $");
+__RCSID("$NetBSD: quotacheck.c,v 1.51 2023/01/07 19:41:30 chs Exp $");
#endif
#endif /* not lint */
@@ -319,7 +319,8 @@ chkquota(const char *type, const char *f
struct quotaname *qnp = v;
struct fileusage *fup;
union comb_dinode *dp;
- int cg, i, mode, errs = 0, inosused;
+ int i, mode, errs = 0, inosused;
+ uint32_t cg;
ino_t ino;
struct cg *cgp;
char msgbuf[4096];