inode_hashtable哈希表及f2fs查找inode过程

文件系统使用inode_hashtable哈希表加速索引节点搜索,通过索引节点号和超级块对象进行查找。在f2fs中,详细查找过程涉及特定的函数操作,并在哈希表中插入或查找inode。了解这一过程有助于理解文件系统的内部工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件系统中的位于内存中所有inode存放在一个名为inode_hashtable的全局哈希表中(如果inode还在磁盘,尚未读到内存中,则不会加入到全局哈希表中)。另一方面,所有的inode还存放在超级块中的s_inode链表中。

inode_hashtable哈希表加快了对索引节点对象的搜索。

前提是必须知道索引节点号和文件所在文件系统对应的超级块对象。

inode_table位于fs/inode.c中:

static unsigned int i_hash_mask __read_mostly;
static unsigned int i_hash_shift __read_mostly;
static struct hlist_head *inode_hashtable __read_mostly;  //哈希表定义
static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);

/*
 * Empty aops. Can be used for the cases where the user does not
 * define any of the address_space operations.
 */
const struct address_space_operations empty_aops = {
};
EXPORT_SYMBOL(empty_aops);

————————————————————————————————————————————————————————
下面以f2fs文件系统查找inode为例:
f2fs_iget依据索引节点号ino,查找对应的inode;

/* 
	依据节点号ino,获得对应的inode;
	若没有,则创建一个新的inode,读取磁盘上的inode所在的block,生成f2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值