From ebd38d9a92972b3d8607d91c23a7ff1cb30c7f94 Mon Sep 17 00:00:00 2001 From: Ben Gras Date: Thu, 30 Jun 2005 13:04:57 +0000 Subject: [PATCH] Added formatting fixes for larger numbers in fsck and df; made mkfs test for devices larger than 4GB, so it won't try to test them (and print a warning message), but it will write the FS. --- commands/simple/Makefile | 2 +- commands/simple/df.c | 16 ++++++++-------- commands/simple/fsck.c | 28 ++++++++++++++++------------ commands/simple/mkfs.c | 7 ++++++- 4 files changed, 31 insertions(+), 22 deletions(-) diff --git a/commands/simple/Makefile b/commands/simple/Makefile index b5c2243f6..524bd740b 100755 --- a/commands/simple/Makefile +++ b/commands/simple/Makefile @@ -381,7 +381,7 @@ fortune: fortune.c fsck: fsck.c $(CCLD) -o $@ $? - @install -S 1024k $@ + @install -S 4096k $@ fsck1: fsck1.c $(CCLD) -o $@ $? diff --git a/commands/simple/df.c b/commands/simple/df.c index 9dc6dd6cb..503ec6e50 100755 --- a/commands/simple/df.c +++ b/commands/simple/df.c @@ -117,13 +117,13 @@ int main(int argc, char *argv[]) if (Pflag) { printf(!iflag ? "\ -Filesystem %4d-blocks Used Available Capacity Mounted on\n" : "\ -Filesystem Inodes IUsed IFree %%IUsed Mounted on\n", +Filesystem %4d-blocks Used Available Capacity Mounted on\n" : "\ +Filesystem Inodes IUsed IFree %%IUsed Mounted on\n", unitsize); } else { printf("%s\n", !iflag ? "\ -Filesystem 1K-Blocks Free Used % Files% Mounted on" : "\ -Filesystem Files Free Used % BUsed% Mounted on" +Filesystem 1K-Blocks Free Used % Files% Mounted on" : "\ +Filesystem Files Free Used % BUsed% Mounted on" ); } @@ -358,7 +358,7 @@ int df(const struct mtab *mt) while (n < 15) { putchar(' '); n++; } if (!Pflag && !iflag) { - printf(" %7ld %7ld %7ld %3d%% %3d%% %s\n", + printf(" %9ld %9ld %9ld %3d%% %3d%% %s\n", L(totblocks), /* Blocks */ L(totblocks - busyblocks), /* free */ L(busyblocks), /* used */ @@ -368,7 +368,7 @@ int df(const struct mtab *mt) ); } if (!Pflag && iflag) { - printf(" %7ld %7ld %7ld %3d%% %3d%% %s\n", + printf(" %9ld %9ld %9ld %3d%% %3d%% %s\n", L(sp->s_ninodes), /* Files */ L(sp->s_ninodes - i_count), /* free */ L(i_count), /* used */ @@ -378,7 +378,7 @@ int df(const struct mtab *mt) ); } if (Pflag && !iflag) { - printf(" %7ld %7ld %7ld %4d%% %s\n", + printf(" %9ld %9ld %9ld %4d%% %s\n", L(totblocks), /* Blocks */ L(busyblocks), /* Used */ totblocks - busyblocks, /* Available */ @@ -387,7 +387,7 @@ int df(const struct mtab *mt) ); } if (Pflag && iflag) { - printf(" %7ld %7ld %7ld %4d%% %s\n", + printf(" %9ld %9ld %9ld %4d%% %s\n", L(sp->s_ninodes), /* Inodes */ L(i_count), /* IUsed */ L(sp->s_ninodes - i_count), /* IAvail */ diff --git a/commands/simple/fsck.c b/commands/simple/fsck.c index fc3148b46..1901ce21c 100755 --- a/commands/simple/fsck.c +++ b/commands/simple/fsck.c @@ -309,7 +309,11 @@ unsigned nelem, elsize; { char *p; - if ((p = (char *)malloc((size_t)nelem * elsize)) == 0)fatal("out of memory"); + if ((p = (char *)malloc((size_t)nelem * elsize)) == 0) { + fprintf(stderr, "Tried to allocate %dkB\n", + nelem*elsize/1024); + fatal("out of memory"); + } memset((void *) p, 0, (size_t)nelem * elsize); return(p); } @@ -1438,21 +1442,21 @@ void printtotal() printf("blocksize = %5d ", block_size); printf("zonesize = %5d\n", ZONE_SIZE); printf("\n"); - pr("%6u Regular file%s\n", nregular, "", "s"); - pr("%6u Director%s\n", ndirectory, "y", "ies"); - pr("%6u Block special file%s\n", nblkspec, "", "s"); - pr("%6u Character special file%s\n", ncharspec, "", "s"); + pr("%8u Regular file%s\n", nregular, "", "s"); + pr("%8u Director%s\n", ndirectory, "y", "ies"); + pr("%8u Block special file%s\n", nblkspec, "", "s"); + pr("%8u Character special file%s\n", ncharspec, "", "s"); if (nbadinode != 0) pr("%6u Bad inode%s\n", nbadinode, "", "s"); - pr("%6u Free inode%s\n", nfreeinode, "", "s"); - pr("%6u Named pipe%s\n", npipe, "", "s"); - pr("%6u Symbolic link%s\n", nsyml, "", "s"); + pr("%8u Free inode%s\n", nfreeinode, "", "s"); + pr("%8u Named pipe%s\n", npipe, "", "s"); + pr("%8u Symbolic link%s\n", nsyml, "", "s"); /* Don't print some fields. printf("\n"); - pr("%6u Data zone%s\n", ztype[0], "", "s"); - pr("%6u Single indirect zone%s\n", ztype[1], "", "s"); - pr("%6u Double indirect zone%s\n", ztype[2], "", "s"); + pr("%8u Data zone%s\n", ztype[0], "", "s"); + pr("%8u Single indirect zone%s\n", ztype[1], "", "s"); + pr("%8u Double indirect zone%s\n", ztype[2], "", "s"); */ - lpr("%6ld Free zone%s\n", nfreezone, "", "s"); + lpr("%8ld Free zone%s\n", nfreezone, "", "s"); } /* Check the device which name is given by `f'. The inodes listed by `clist' diff --git a/commands/simple/mkfs.c b/commands/simple/mkfs.c index a9bd9cbaf..393677744 100755 --- a/commands/simple/mkfs.c +++ b/commands/simple/mkfs.c @@ -55,7 +55,7 @@ #define BIN 2 #define BINGRP 2 #define BIT_MAP_SHIFT 13 -#define N_BLOCKS (1024L * 1024) +#define N_BLOCKS MAX_BLOCK_NR #define N_BLOCKS16 (128L * 1024) #define INODE_MAX ((unsigned) 65535) @@ -323,6 +323,11 @@ char *argv[]; special(argv[--optind]); #ifdef UNIX + if(ULONG_MAX / block_size <= blocks-1) { + fprintf(stderr, "Warning: mkfs not testing device, it's too big.\n"); + donttest = 1; + } + if (!donttest) { short *testb; ssize_t w; -- 2.44.0