Author: sobomax
Date: Tue Mar  9 19:31:08 2010
New Revision: 204919
URL: http://svn.freebsd.org/changeset/base/204919

Log:
  o bdeficize expand_number_int() function;
  
  o revert most of the recent changes (int -> int64_t conversion) by using
  this functon for parsing all options.

Modified:
  head/sbin/newfs/mkfs.c
  head/sbin/newfs/newfs.c
  head/sbin/newfs/newfs.h

Modified: head/sbin/newfs/mkfs.c
==============================================================================
--- head/sbin/newfs/mkfs.c      Tue Mar  9 19:19:07 2010        (r204918)
+++ head/sbin/newfs/mkfs.c      Tue Mar  9 19:31:08 2010        (r204919)
@@ -191,8 +191,8 @@ restart:
                exit(17);
        }
        if (sblock.fs_fsize < sectorsize) {
-               printf("increasing fragment size from %d to sector size 
(%jd)\n",
-                   sblock.fs_fsize, (intmax_t)sectorsize);
+               printf("increasing fragment size from %d to sector size (%d)\n",
+                   sblock.fs_fsize, sectorsize);
                sblock.fs_fsize = sectorsize;
        }
        if (sblock.fs_bsize > MAXBSIZE) {
@@ -337,8 +337,8 @@ restart:
        } else if (density < minfragsperinode * fsize) {
                origdensity = density;
                density = minfragsperinode * fsize;
-               fprintf(stderr, "density increased from %d to %jd\n",
-                   origdensity, (intmax_t)density);
+               fprintf(stderr, "density increased from %d to %d\n",
+                   origdensity, density);
        }
        origdensity = density;
        for (;;) {
@@ -346,9 +346,8 @@ restart:
                if (fragsperinode < minfragsperinode) {
                        bsize <<= 1;
                        fsize <<= 1;
-                       printf("Block size too small for a file system %s 
%jd\n",
-                           "of this size. Increasing blocksize to",
-                           (intmax_t)bsize);
+                       printf("Block size too small for a file system %s %d\n",
+                            "of this size. Increasing blocksize to", bsize);
                        goto restart;
                }
                minfpg = fragsperinode * INOPB(&sblock);
@@ -372,8 +371,7 @@ restart:
                density -= sblock.fs_fsize;
        }
        if (density != origdensity)
-               printf("density reduced from %d to %jd\n", origdensity,
-                   (intmax_t)density);
+               printf("density reduced from %d to %d\n", origdensity, density);
        /*
         * Start packing more blocks into the cylinder group until
         * it cannot grow any larger, the number of cylinder groups

Modified: head/sbin/newfs/newfs.c
==============================================================================
--- head/sbin/newfs/newfs.c     Tue Mar  9 19:19:07 2010        (r204918)
+++ head/sbin/newfs/newfs.c     Tue Mar  9 19:31:08 2010        (r204919)
@@ -94,17 +94,17 @@ int nflag;                  /* do not create .snap dire
 intmax_t fssize;               /* file system size */
 int    sectorsize;             /* bytes/sector */
 int    realsectorsize;         /* bytes/sector in hardware */
-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 */
+int    fsize = 0;              /* fragment size */
+int    bsize = 0;              /* block size */
+int    maxbsize = 0;           /* maximum clustering */
+int    maxblkspercg = MAXBLKSPERCG; /* maximum blocks per cylinder group */
 int    minfree = MINFREE;      /* free space threshold */
 int    opt = DEFAULTOPT;       /* optimization preference (space or time) */
-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 */
+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 */
 u_char *volumelabel = NULL;    /* volume label for filesystem */
 struct uufsd disk;             /* libufs disk structure */
 
@@ -186,13 +186,13 @@ main(int argc, char *argv[])
                        Xflag++;
                        break;
                case 'a':
-                       rval = expand_number(optarg, &maxcontig);
+                       rval = expand_number_int(optarg, &maxcontig);
                        if (rval < 0 || maxcontig <= 0)
                                errx(1, "%s: bad maximum contiguous blocks",
                                    optarg);
                        break;
                case 'b':
-                       rval = expand_number(optarg, &bsize);
+                       rval = expand_number_int(optarg, &bsize);
                        if (rval < 0)
                                 errx(1, "%s: bad block size",
                                     optarg);
@@ -204,39 +204,39 @@ main(int argc, char *argv[])
                                    optarg, MAXBSIZE);
                        break;
                case 'c':
-                       rval = expand_number(optarg, &maxblkspercg);
+                       rval = expand_number_int(optarg, &maxblkspercg);
                        if (rval < 0 || maxblkspercg <= 0)
                                errx(1, "%s: bad blocks per cylinder group",
                                    optarg);
                        break;
                case 'd':
-                       rval = expand_number(optarg, &maxbsize);
+                       rval = expand_number_int(optarg, &maxbsize);
                        if (rval < 0 || maxbsize < MINBSIZE)
                                errx(1, "%s: bad extent block size", optarg);
                        break;
                case 'e':
-                       rval = expand_number(optarg, &maxbpg);
+                       rval = expand_number_int(optarg, &maxbpg);
                        if (rval < 0 || maxbpg <= 0)
                          errx(1, "%s: bad blocks per file in a cylinder group",
                                    optarg);
                        break;
                case 'f':
-                       rval = expand_number(optarg, &fsize);
+                       rval = expand_number_int(optarg, &fsize);
                        if (rval < 0 || fsize <= 0)
                                errx(1, "%s: bad fragment size", optarg);
                        break;
                case 'g':
-                       rval = expand_number(optarg, &avgfilesize);
+                       rval = expand_number_int(optarg, &avgfilesize);
                        if (rval < 0 || avgfilesize <= 0)
                                errx(1, "%s: bad average file size", optarg);
                        break;
                case 'h':
-                       rval = expand_number(optarg, &avgfilesperdir);
+                       rval = expand_number_int(optarg, &avgfilesperdir);
                        if (rval < 0 || avgfilesperdir <= 0)
                               errx(1, "%s: bad average files per dir", optarg);
                        break;
                case 'i':
-                       rval = expand_number(optarg, &density);
+                       rval = expand_number_int(optarg, &density);
                        if (rval < 0 || density <= 0)
                                errx(1, "%s: bad bytes per inode", optarg);
                        break;
@@ -505,9 +505,9 @@ expand_number_int(const char *buf, int *
        int rval;
 
        rval = expand_number(buf, &num64);
-       if (rval != 0)
+       if (rval < 0)
                return (rval);
-       if (num64 > INT_MAX) {
+       if (num64 > INT_MAX || num64 < INT_MIN) {
                errno = ERANGE;
                return (-1);
        }

Modified: head/sbin/newfs/newfs.h
==============================================================================
--- head/sbin/newfs/newfs.h     Tue Mar  9 19:19:07 2010        (r204918)
+++ head/sbin/newfs/newfs.h     Tue Mar  9 19:31:08 2010        (r204919)
@@ -88,17 +88,17 @@ extern int  nflag;          /* do not create .sna
 extern intmax_t        fssize;         /* file system size */
 extern int     sectorsize;     /* bytes/sector */
 extern int     realsectorsize; /* bytes/sector in hardware*/
-extern int64_t fsize;          /* fragment size */
-extern int64_t bsize;          /* block size */
-extern int64_t maxbsize;       /* maximum clustering */
-extern int64_t maxblkspercg;   /* maximum blocks per cylinder group */
+extern int     fsize;          /* fragment size */
+extern int     bsize;          /* block size */
+extern int     maxbsize;       /* maximum clustering */
+extern int     maxblkspercg;   /* maximum blocks per cylinder group */
 extern int     minfree;        /* free space threshold */
 extern int     opt;            /* optimization preference (space or time) */
-extern int64_t density;        /* number of bytes per inode */
-extern int64_t maxcontig;      /* max contiguous blocks to allocate */
-extern int64_t maxbpg;         /* maximum blocks per file in a cyl group */
-extern int64_t avgfilesize;    /* expected average file size */
-extern int64_t avgfilesperdir; /* expected number of files per directory */
+extern int     density;        /* number of bytes per inode */
+extern int     maxcontig;      /* max contiguous blocks to allocate */
+extern int     maxbpg;         /* maximum blocks per file in a cyl group */
+extern int     avgfilesize;    /* expected average file size */
+extern int     avgfilesperdir; /* expected number of files per directory */
 extern u_char  *volumelabel;   /* volume label for filesystem */
 extern struct uufsd disk;      /* libufs disk structure */
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to