From patchwork Fri Dec 6 09:58:16 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Liu X-Patchwork-Id: 297689 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 9EE442C00A0 for ; Fri, 6 Dec 2013 20:57:01 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757792Ab3LFJ4o (ORCPT ); Fri, 6 Dec 2013 04:56:44 -0500 Received: from mail-pb0-f45.google.com ([209.85.160.45]:51731 "EHLO mail-pb0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757761Ab3LFJ4e (ORCPT ); Fri, 6 Dec 2013 04:56:34 -0500 Received: by mail-pb0-f45.google.com with SMTP id rp16so793051pbb.4 for ; Fri, 06 Dec 2013 01:56:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=7tPqsymj4UtBv/ZKaaBxi0+F3npA7Ps0PCqV8uG03EI=; b=PB+EsfLSBSBfn4qxaZcPHbWf+1wM/4ELcCaosWEFwqEm3Z6QvI9t9tnobv+1HWLtzK f30bpJenuV9bwRXJ3yw5AJNhHqz53fEc8ksgEVMPo9NaFOx6OAShDr3N6Evspt5Ho78n S++KcnNJrJ9Ez0zFcJia/CfuUwELb7K1ZFCn4vZpU3KGMclCkkN7A5BIlvIKGMnPSkA6 +Mm6o0g3s5HBFKsA7khMyyoA5OfbNtIvYdMjIvVupffXNENAMiGiQEYEtYDHp0RzSaz2 MCaHxk856nSFes5n6ZqaIiPvUAbmYOAZnZVtDQqpiZKjTPXXxlU5dD1Y4f0jdTx9p4Uj Vc7A== X-Received: by 10.68.91.3 with SMTP id ca3mr3084847pbb.20.1386323794207; Fri, 06 Dec 2013 01:56:34 -0800 (PST) Received: from alpha.taobao.ali.com ([182.92.247.2]) by mx.google.com with ESMTPSA id m2sm56582620pbn.19.2013.12.06.01.56.31 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Fri, 06 Dec 2013 01:56:33 -0800 (PST) From: Zheng Liu To: linux-ext4@vger.kernel.org Cc: Theodore Ts'o , "Darrick J. Wong" , Zheng Liu Subject: [PATCH v3 29/30] libext2fs: export inode cahce creation function Date: Fri, 6 Dec 2013 17:58:16 +0800 Message-Id: <1386323897-2354-30-git-send-email-wenqing.lz@taobao.com> X-Mailer: git-send-email 1.7.9.7 In-Reply-To: <1386323897-2354-1-git-send-email-wenqing.lz@taobao.com> References: <1386323897-2354-1-git-send-email-wenqing.lz@taobao.com> Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org From: Zheng Liu 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 --- lib/ext2fs/ext2fs.h | 2 ++ lib/ext2fs/ext2fsP.h | 2 +- lib/ext2fs/inode.c | 8 ++++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h index 3237b03..fe6b0d9 100644 --- a/lib/ext2fs/ext2fs.h +++ b/lib/ext2fs/ext2fs.h @@ -1372,6 +1372,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, diff --git a/lib/ext2fs/ext2fsP.h b/lib/ext2fs/ext2fsP.h index e159128..6f175f7 100644 --- a/lib/ext2fs/ext2fsP.h +++ b/lib/ext2fs/ext2fsP.h @@ -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; }; diff --git a/lib/ext2fs/inode.c b/lib/ext2fs/inode.c index 46c1c58..0cea9f0 100644 --- a/lib/ext2fs/inode.c +++ b/lib/ext2fs/inode.c @@ -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; }