Whamcloud - gitweb
libext2fs: ext2fs_new_block2() should call alloc_block hook
[tools/e2fsprogs.git] / lib / ext2fs / dblist.c
index ead8c7a..942c4f0 100644 (file)
@@ -9,6 +9,7 @@
  * %End-Header%
  */
 
+#include "config.h"
 #include <stdio.h>
 #if HAVE_UNISTD_H
 #include <unistd.h>
@@ -24,34 +25,6 @@ static EXT2_QSORT_TYPE dir_block_cmp2(const void *a, const void *b);
 static EXT2_QSORT_TYPE (*sortfunc32)(const void *a, const void *b);
 
 /*
- * Returns the number of directories in the filesystem as reported by
- * the group descriptors.  Of course, the group descriptors could be
- * wrong!
- */
-errcode_t ext2fs_get_num_dirs(ext2_filsys fs, ext2_ino_t *ret_num_dirs)
-{
-       dgrp_t  i;
-       ext2_ino_t      num_dirs, max_dirs;
-
-       EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
-
-       num_dirs = 0;
-       max_dirs = fs->super->s_inodes_per_group;
-       for (i = 0; i < fs->group_desc_count; i++) {
-               if (ext2fs_bg_used_dirs_count(fs, i) > max_dirs)
-                       num_dirs += max_dirs / 8;
-               else
-                       num_dirs += ext2fs_bg_used_dirs_count(fs, i);
-       }
-       if (num_dirs > fs->super->s_inodes_count)
-               num_dirs = fs->super->s_inodes_count;
-
-       *ret_num_dirs = num_dirs;
-
-       return 0;
-}
-
-/*
  * helper function for making a new directory block list (for
  * initialize and copy).
  */
@@ -60,7 +33,7 @@ static errcode_t make_dblist(ext2_filsys fs, ext2_ino_t size,
                             struct ext2_db_entry2 *list,
                             ext2_dblist *ret_dblist)
 {
-       ext2_dblist     dblist;
+       ext2_dblist     dblist = NULL;
        errcode_t       retval;
        ext2_ino_t      num_dirs;
        size_t          len;
@@ -392,10 +365,11 @@ int ext2fs_dblist_count(ext2_dblist dblist)
 errcode_t ext2fs_dblist_get_last(ext2_dblist dblist,
                                 struct ext2_db_entry **entry)
 {
-       EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST);
        static struct ext2_db_entry ret_entry;
        struct ext2_db_entry2 *last;
 
+       EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST);
+
        if (dblist->count == 0)
                return EXT2_ET_DBLIST_EMPTY;