原标题:Linux自主访问控制机制模块之详细描述-函数实现机制(3)
ext4_xattr_ibody_set()函数定义fs/ext4/xattr.c中,函数头如下所示:
static int ext4_xattr_ibody_set(handle_t *handle, struct inode *inode,struct ext4_xattr_info*i,struct ext4_xattr_ibody_find*is)
该函数包含4个参数:handle表示用于日志处理的原子更新操作;inode表示用于设置的目标文件;i表示要设置的扩展属性的相关信息;is表示存放在目标文件索引节点空闲空间内的扩展属性的相关信息
图2-14 ext4_xattr_ibody_set()函数调用流程图
如图2-14所示,该函数的核心操作主要是通过ext4_xattr_set_entry()函数实现的。对于ext4_xattr_set_entry()函数,它用于具体的实现属性值的设置操作,该函数只不过是对扩展属性列表的修改操作,主要针对扩展属性项数据结构ext4_xattr_entry进行,因此这里不对其进行详细分析。对于ext4_xattr_block_set()函数,其实现和ext4_xattr_ibody_set()函数相似,因此这里不再赘述。
ACL在VFS中的实现
在Linux中,ACL是根据POSIX标准实现的,其数据结构和POSIX标准规定的数据结