>Number:         151850
>Category:       bin
>Synopsis:       style cleanups to msdos_newfs
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Nov 01 00:00:21 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Pedro F. Giffuni
>Release:        8.0-Release with relevant files updated from 9.0
>Organization:
>Environment:
FreeBSD mogwai.giffuni.net 8.0-RELEASE FreeBSD 8.0-RELEASE #13: Sat Jan  9 
20:39:47 UTC 2010     
[email protected]:/usr/src/sys/i386/compile/GENERIC  i386
>Description:
As a followup to bin/142526 there were some style changes that
needed to be done as requested by b...@.

- Undo C99 initializers.
- Lots of tabs and space changes to conform to FreeBSD style.

Result should be innocuous.
>How-To-Repeat:

>Fix:
Patch follows.

Patch attached with submission follows:

--- newfs_msdos.c.orig  2010-04-03 12:36:58.000000000 +0000
+++ newfs_msdos.c       2010-04-03 17:18:12.000000000 +0000
@@ -55,6 +55,7 @@
 #define NPB      2             /* nibbles per byte */
 
 #define DOSMAGIC  0xaa55       /* DOS magic number */
+#define MAXBPS    4096         /* maximum bytes per sector */
 #define MINBPS   512           /* minimum bytes per sector */
 #define MAXSPC   128           /* maximum sectors per cluster */
 #define MAXNFT   16            /* maximum number of FATs */
@@ -406,24 +407,29 @@
                (int)delta, bpb.bpbSecPerTrack);
            bpb.bpbHugeSectors -= delta;
        }
-       if (bpb.bpbSecPerClust == 0) {  /* set defaults */
-           if (bpb.bpbHugeSectors <= 6000)     /* about 3MB -> 512 bytes */
-               bpb.bpbSecPerClust = 1;
-           else if (bpb.bpbHugeSectors <= (1<<17)) /* 64M -> 4k */
-               bpb.bpbSecPerClust = 8;
-           else if (bpb.bpbHugeSectors <= (1<<19)) /* 256M -> 8k */
-               bpb.bpbSecPerClust = 16;
-           else if (bpb.bpbHugeSectors <= (1<<21)) /* 1G -> 16k */
-               bpb.bpbSecPerClust = 32;
-           else
-               bpb.bpbSecPerClust = 64;                /* otherwise 32k */
-       }
+    else
+       bpb.bpbSecPerClust /= (bpb.bpbBytesPerSec / MINBPS);
+    }
+    if (bpb.bpbSecPerClust == 0) {     /* set defaults */
+       if (bpb.bpbHugeSectors <= 6000) /* about 3MB -> 512 bytes */
+           bpb.bpbSecPerClust = 1;
+       else if (bpb.bpbHugeSectors <= (1<<17)) /* 64M -> 4k */
+           bpb.bpbSecPerClust = 8;
+       else if (bpb.bpbHugeSectors <= (1<<19)) /* 256M -> 8k */
+           bpb.bpbSecPerClust = 16;
+       else if (bpb.bpbHugeSectors <= (1<<21)) /* 1G -> 16k */
+           bpb.bpbSecPerClust = 32;
+       else
+           bpb.bpbSecPerClust = 64;            /* otherwise 32k */
     }
     if (!powerof2(bpb.bpbBytesPerSec))
        errx(1, "bytes/sector (%u) is not a power of 2", bpb.bpbBytesPerSec);
     if (bpb.bpbBytesPerSec < MINBPS)
        errx(1, "bytes/sector (%u) is too small; minimum is %u",
             bpb.bpbBytesPerSec, MINBPS);
+    if (bpb.bpbBytesPerSec > MAXBPS)
+        printf( "WARNING: bytes/sector (%u) is bigger than %u",
+              bpb.bpbBytesPerSec, MAXBPS);
     if (!(fat = opt_F)) {
        if (opt_f)
            fat = 12;
@@ -447,6 +453,9 @@
                 opt_b, bpb.bpbBytesPerSec * MAXSPC);
        bpb.bpbSecPerClust = opt_b / bpb.bpbBytesPerSec;
     }
+    if (bpb.bpbSecPerClust * bpb.bpbBytesPerSec > 32 * 1024)
+        printf("WARNING: bytes per sector (%u) is greater than 32K",
+            bpb.bpbSecPerClust * bpb.bpbBytesPerSec);
     if (opt_c) {
        if (!powerof2(opt_c))
            errx(1, "sectors/cluster (%u) is not a power of 2", opt_c);


>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"

Reply via email to