From 0eac437676f2e77231ee2391fea1689498186611 Mon Sep 17 00:00:00 2001 From: pjd Date: Sun, 19 Sep 2004 10:01:51 +0000 Subject: Fix '-s' option for large disks and fix printing maximum file system size. --- sbin/newfs/newfs.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'sbin/newfs') diff --git a/sbin/newfs/newfs.c b/sbin/newfs/newfs.c index 3a723f8..f39b55b 100644 --- a/sbin/newfs/newfs.c +++ b/sbin/newfs/newfs.c @@ -68,6 +68,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -254,8 +255,10 @@ main(int argc, char *argv[]) optarg); break; case 's': - if ((fssize = atoi(optarg)) <= 0) - errx(1, "%s: bad file system size", optarg); + errno = 0; + fssize = strtoimax(optarg, NULL, 0); + if (errno != 0) + err(1, "%s: bad file system size", optarg); break; case '?': default: @@ -295,8 +298,8 @@ main(int argc, char *argv[]) if (fssize == 0) fssize = mediasize / sectorsize; else if (fssize > mediasize / sectorsize) - errx(1, "%s: maximum file system size is %u", - special, (u_int)(mediasize / sectorsize)); + errx(1, "%s: maximum file system size is %jd", + special, (off_t)(mediasize / sectorsize)); } pp = NULL; lp = getdisklabel(special); -- cgit v1.1