]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
Bump to 2.3.3
authorEric Sandeen <sandeen@sgi.com>
Mon, 16 Sep 2002 20:38:02 +0000 (20:38 +0000)
committerEric Sandeen <sandeen@sgi.com>
Mon, 16 Sep 2002 20:38:02 +0000 (20:38 +0000)
VERSION
doc/CHANGES
mkfs/xfs_mkfs.c

diff --git a/VERSION b/VERSION
index 195a8efa3ba0d251eb7364c8eba05a63bbaa2481..156b7c3c82eed9ad585b347ed15e8a7e3bc856c1 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -3,5 +3,5 @@
 #
 PKG_MAJOR=2
 PKG_MINOR=3
-PKG_REVISION=2
+PKG_REVISION=3
 PKG_BUILD=0
index 80ede90b4ce0456f59f900f13107fdc127acf514..8ebb2b280306158b4fb5fb041ae98dedf855613c 100644 (file)
@@ -1,3 +1,7 @@
+xfsprogs-2.3.3 (16 September 2002)
+       - Fix mkfs bug when optimizing AG size on striped devices,
+         ASSERT(agcount != 0) tripped on single-ag filesystems.
+
 xfsprogs-2.3.2 (10 September 2002)
        - Use pread/pwrite instead of lseek + read/write.
 
index d67e978623fc8e332eaf97141a0f8e2d81cf6c32..0e67fc1c531f7bd6d260ba2aee016c75d2d5a111 100644 (file)
@@ -1486,12 +1486,13 @@ main(int argc, char **argv)
                        usage();
                }
                agsize = XFS_AG_MIN_BLOCKS(blocklog);
-               if (dblocks < agsize)
+               if (dblocks < agsize) {
                        agcount = 1;
-               else
+                       agsize = dblocks;
+               } else {
                        agcount = dblocks / agsize;
-
-               agsize = dblocks / agcount + (dblocks % agcount != 0);
+                       agsize = dblocks / agcount +(dblocks % agcount != 0);
+               }
        }
 
        /*
@@ -1637,15 +1638,20 @@ main(int argc, char **argv)
                                }
                        }
                }
-               if ((agsize % dswidth) == 0) {
+               if (((agsize % dswidth) == 0) && (agcount > 1)) {
                        /* This is a non-optimal configuration because all AGs
-                        * start on the same disk in the stripe.  Decreasing
+                        * start on the same disk in the stripe.  Changing 
                         * the AG size by one sunit will guarantee that this
-                        * does not happen
+                        * does not happen.
                         */
                        tmp_agsize = agsize - dsunit;
-                       if (tmp_agsize < XFS_AG_MIN_BLOCKS(blocklog))
+                       if (tmp_agsize < XFS_AG_MIN_BLOCKS(blocklog)) {
                                tmp_agsize = agsize + dsunit;
+                               if (dblocks < agsize) {
+                                       /* oh well, nothing to do */
+                                       tmp_agsize = agsize;
+                               }
+                       }
                        if (daflag || dasize) {
                                fprintf(stderr,
 "Warning: AG size is a multiple of stripe width.  This can cause performance\n\