Whamcloud - gitweb
ChangeLog, icount.c:
authorTheodore Ts'o <tytso@mit.edu>
Fri, 8 Jun 2001 09:43:40 +0000 (09:43 +0000)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 8 Jun 2001 09:43:40 +0000 (09:43 +0000)
  icount.c (insert_icount_el): Fix the code used to estimate the size of
   the new icount array to be more intelligent, to avoid reallocating the
   array too many times.
ChangeLog, ext2_types.h.in:
  ext2_types.h.in: Use unsigned ints in favor of unsigned longs when
   trying to find a 32-bit wide type.

lib/ext2fs/ChangeLog
lib/ext2fs/ext2_types.h.in
lib/ext2fs/icount.c

index a93fb02..7232737 100644 (file)
@@ -1,3 +1,13 @@
+2001-06-08  Theodore Tso  <tytso@valinux.com>
+
+       * ext2_types.h.in: Use unsigned ints in favor of unsigned longs
+               when trying to find a 32-bit wide type.
+
+       * icount.c (insert_icount_el): Fix the code used to estimate the
+               size of the new icount array to be more intelligent, to
+               avoid reallocating the array too many times.  Thanks to
+               Enrique Perez-Terron for pointing this out.
+
 2001-06-02  Theodore Tso  <tytso@valinux.com>
 
        * valid_blk.c (ext2fs_inode_has_valid_blocks): Only check i_blocks
index 9b56bc8..0731a01 100644 (file)
@@ -29,12 +29,12 @@ typedef     unsigned short  __u16;
   ?==error: undefined 16 bit type
 #endif
 
-#if (@SIZEOF_LONG@ == 4)
-typedef        long            __s32;
-typedef        unsigned long   __u32;
-#elif (@SIZEOF_INT@ == 4)
+#if (@SIZEOF_INT@ == 4)
 typedef        int             __s32;
 typedef        unsigned int    __u32;
+#elif (@SIZEOF_LONG@ == 4)
+typedef        long            __s32;
+typedef        unsigned long   __u32;
 #elif (@SIZEOF_SHORT@ == 4)
 typedef        short           __s32;
 typedef        unsigned short  __u32;
index d6f4cfc..1ad3940 100644 (file)
@@ -170,7 +170,7 @@ static struct ext2_icount_el *insert_icount_el(ext2_icount_t icount,
                if (icount->count) {
                        new_size = icount->list[(unsigned)icount->count-1].ino;
                        new_size = (ext2_ino_t) (icount->count * 
-                               ((float) new_size / icount->num_inodes));
+                               ((float) icount->num_inodes / new_size));
                }
                if (new_size < (icount->size + 100))
                        new_size = icount->size + 100;