]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
libext2fs: export inode cache creation function
authorZheng Liu <wenqing.lz@taobao.com>
Mon, 3 Mar 2014 06:03:24 +0000 (01:03 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 4 Mar 2014 13:46:15 +0000 (08:46 -0500)
Currently we have already exported inode cache flush and free functions
for users.  This commit exports inode cache creation function.  Later
we will use this function to initialize inode cache and do some unit
tests for inline data.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
lib/ext2fs/ext2fs.h
lib/ext2fs/ext2fsP.h
lib/ext2fs/inode.c

index 0581197709e4eeaf5109aee83141c389e9eaa634..a7b6116015c9028553fc21ac5f30487f61effaa5 100644 (file)
@@ -1387,6 +1387,8 @@ extern errcode_t ext2fs_get_memalign(unsigned long size,
                                     unsigned long align, void *ptr);
 
 /* inode.c */
+extern errcode_t ext2fs_create_inode_cache(ext2_filsys fs,
+                                          unsigned int cache_size);
 extern void ext2fs_free_inode_cache(struct ext2_inode_cache *icache);
 extern errcode_t ext2fs_flush_icache(ext2_filsys fs);
 extern errcode_t ext2fs_get_next_inode_full(ext2_inode_scan scan,
index eaa203cbb217b1e3b0393b81e4776f9d03e60f8f..20257e2a073c03e1af09ff0f61ffc30b6d1d81ac 100644 (file)
@@ -69,7 +69,7 @@ struct ext2_inode_cache {
        void *                          buffer;
        blk64_t                         buffer_blk;
        int                             cache_last;
-       int                             cache_size;
+       unsigned int                    cache_size;
        int                             refcount;
        struct ext2_inode_cache_ent     *cache;
 };
index 46c1c585e5bae0311c0c4328aaad0228e6e7c3f6..0cea9f0215f1c3d6b05737698f02caadbb1cc474 100644 (file)
@@ -91,7 +91,7 @@ void ext2fs_free_inode_cache(struct ext2_inode_cache *icache)
        ext2fs_free_mem(&icache);
 }
 
-static errcode_t create_icache(ext2_filsys fs)
+errcode_t ext2fs_create_inode_cache(ext2_filsys fs, unsigned int cache_size)
 {
        int             i;
        errcode_t       retval;
@@ -109,7 +109,7 @@ static errcode_t create_icache(ext2_filsys fs)
 
        fs->icache->buffer_blk = 0;
        fs->icache->cache_last = -1;
-       fs->icache->cache_size = 4;
+       fs->icache->cache_size = cache_size;
        fs->icache->refcount = 1;
        retval = ext2fs_get_array(fs->icache->cache_size,
                                  sizeof(struct ext2_inode_cache_ent),
@@ -596,7 +596,7 @@ errcode_t ext2fs_read_inode_full(ext2_filsys fs, ext2_ino_t ino,
                return EXT2_ET_BAD_INODE_NUM;
        /* Create inode cache if not present */
        if (!fs->icache) {
-               retval = create_icache(fs);
+               retval = ext2fs_create_inode_cache(fs, 4);
                if (retval)
                        return retval;
        }
@@ -732,7 +732,7 @@ errcode_t ext2fs_write_inode_full(ext2_filsys fs, ext2_ino_t ino,
                        }
                }
        } else {
-               retval = create_icache(fs);
+               retval = ext2fs_create_inode_cache(fs, 4);
                if (retval)
                        goto errout;
        }