首页 存档 技术 查看内容

Linux自主访问控制机制模块之详细描述-函数实现机制(21)

2018-3-30 13:00 |来自: 互联网 359 0

摘要: xattr.c文件 对于xattr.c,其完整文件名称为fs/ext4/xattr.c,该文件定义了扩展属性在ext4文件系统中的具体实现。 该文件涉及的比较重要的宏如表所示: 下面对该文件的相关函数进行详细解释: 1.ext4_xattr_che ...

xattr.c文件


对于xattr.c,其完整文件名称为fs/ext4/xattr.c,该文件定义了扩展属性在ext4文件系统中的具体实现。


该文件涉及的比较重要的宏如表所示:


下面对该文件的相关函数进行详细解释:


1.ext4_xattr_check_names()

函数原型:


static int ext4_xattr_check_names(structext4_xattr_entry*entry, void *end);


函数参数:entry表示待检查的第一个扩展属性项;end表示存放扩展属性的存储空间的的末尾。

函数功能:判断各个扩展属性项是否位于指定的空间内。

返回值:若均在指定的存储空间内则返回0;反之返回-EIO。

2.ext4_xattr_check_block()

函数原型:


static inlineint ext4_xattr_check_block(structinode *inode,struct buffer_head *bh);


函数参数:inode表示待检查的目标文件;bh表示磁盘块对应的缓冲区的缓冲头。

函数功能:检查目标对象所在的磁盘块所对应的缓冲区是否正确。

返回值:成功时返回0;反之返回相应的错误码。

3.ext4_xattr_find_entry()

函数原型:


static int ext4_xattr_find_entry(structext4_xattr_entry**pentry, int name_index, const char *name, size_t size, int sorted);


函数参数:pentry指向扩展属性各表项的起始地址;name_index表示待查找的扩展属性所属命名空间对应的处理程序在映射表中的索引;name表示待查找的扩展属性的属性名;size表示扩展属性名的长度;sorted表示扩展属性表项是否是有序的。

函数功能:在扩展属性列表中查找参数name指定的扩展属性。

返回值:若找到则返回0;反之返回相应的错误码。

4.ext4_xattr_block_get()

函数原型:


static int ext4_xattr_block_get(structinode *inode, int name_index,

const char *name, void *buffer,size_tbuffer_size);


函数参数:inode表示要操作的目标文件;name_index表示扩展属性所属命名空间对应的处理程序在映射表中的索引;name表示要获得的扩展属性的名字;buffer指向用于存储扩展属性值的存储空间;buffer_size表示存储空间的长度。

函数功能:在扩展属性所在的外部数据块中查找指定的扩展属性。

返回值:若找到则返回扩展属性值的长度;反之返回相应的错误码。


声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部