Deleted Added
full compact
51c51
< __FBSDID("$FreeBSD: head/sbin/newfs/newfs.c 204615 2010-03-03 02:05:09Z sobomax $");
---
> __FBSDID("$FreeBSD: head/sbin/newfs/newfs.c 204654 2010-03-03 19:25:28Z sobomax $");
79a80,81
> #include <libutil.h>
>
93c95
< int sectorsize; /* bytes/sector */
---
> int64_t sectorsize; /* bytes/sector */
95,98c97,100
< int fsize = 0; /* fragment size */
< int bsize = 0; /* block size */
< int maxbsize = 0; /* maximum clustering */
< int maxblkspercg = MAXBLKSPERCG; /* maximum blocks per cylinder group */
---
> int64_t fsize = 0; /* fragment size */
> int64_t bsize = 0; /* block size */
> int64_t maxbsize = 0; /* maximum clustering */
> int64_t maxblkspercg = MAXBLKSPERCG; /* maximum blocks per cylinder group */
101,105c103,107
< int density; /* number of bytes per inode */
< int maxcontig = 0; /* max contiguous blocks to allocate */
< int maxbpg; /* maximum blocks per file in a cyl group */
< int avgfilesize = AVFILESIZ;/* expected average file size */
< int avgfilesperdir = AFPDIR;/* expected number of files per directory */
---
> int64_t density; /* number of bytes per inode */
> int64_t maxcontig = 0; /* max contiguous blocks to allocate */
> int64_t maxbpg; /* maximum blocks per file in a cyl group */
> int64_t avgfilesize = AVFILESIZ;/* expected average file size */
> int64_t avgfilesperdir = AFPDIR;/* expected number of files per directory */
120d121
< static int parselength(const char *ls, int *sz);
173c174
< rval = parselength(optarg, &sectorsize);
---
> rval = expand_number(optarg, &sectorsize);
187c188
< rval = parselength(optarg, &maxcontig);
---
> rval = expand_number(optarg, &maxcontig);
193c194
< rval = parselength(optarg, &bsize);
---
> rval = expand_number(optarg, &bsize);
205c206
< rval = parselength(optarg, &maxblkspercg);
---
> rval = expand_number(optarg, &maxblkspercg);
211c212
< rval = parselength(optarg, &maxbsize);
---
> rval = expand_number(optarg, &maxbsize);
216c217
< rval = parselength(optarg, &maxbpg);
---
> rval = expand_number(optarg, &maxbpg);
222c223
< rval = parselength(optarg, &fsize);
---
> rval = expand_number(optarg, &fsize);
227c228
< rval = parselength(optarg, &avgfilesize);
---
> rval = expand_number(optarg, &avgfilesize);
232c233
< rval = parselength(optarg, &avgfilesperdir);
---
> rval = expand_number(optarg, &avgfilesperdir);
237c238
< rval = parselength(optarg, &density);
---
> rval = expand_number(optarg, &density);
498,556d498
<
< /*
< * Return the numeric value of a string given in the form [+-][0-9]+[GMKT]
< * or -1 on format error or overflow.
< */
< static int
< parselength(const char *ls, int *sz)
< {
< off_t length, oflow;
< int lsign;
<
< length = 0;
< lsign = 1;
<
< switch (*ls) {
< case '-':
< lsign = -1;
< case '+':
< ls++;
< }
<
< #define ASSIGN_CHK_OFLOW(x, y) if (x < y) return -1; y = x
< /*
< * Calculate the value of the decimal digit string, failing
< * on overflow.
< */
< while (isdigit(*ls)) {
< oflow = length * 10 + *ls++ - '0';
< ASSIGN_CHK_OFLOW(oflow, length);
< }
<
< switch (*ls) {
< case 'T':
< case 't':
< oflow = length * 1024;
< ASSIGN_CHK_OFLOW(oflow, length);
< case 'G':
< case 'g':
< oflow = length * 1024;
< ASSIGN_CHK_OFLOW(oflow, length);
< case 'M':
< case 'm':
< oflow = length * 1024;
< ASSIGN_CHK_OFLOW(oflow, length);
< case 'K':
< case 'k':
< if (ls[1] != '\0')
< return -1;
< oflow = length * 1024;
< ASSIGN_CHK_OFLOW(oflow, length);
< case '\0':
< break;
< default:
< return -1;
< }
<
< *sz = length * lsign;
< return 0;
< }