ACL在ext4中的操作 对于ext4文件系统,其中有关ACL的相关操作如下表2-7所示,这些操作定义在fs/ext4/acl.h和fs/ext4/acl.c中。 表2-7 ext4文件系统中ACL相关操作
下面只对其中相对重要的部分函数进行分析:
ext4_acl_from_disk()函数用于将ACL的磁盘表示格式转化为内存表示格式,成功执行时返回指向ACL内存表示形式的指针,函数头如下所示: static struct posix_acl*ext4_acl_from_disk(constvoid *value, size_t size) 如上所示,该函数有两个参数:value表示磁盘格式的ACL在缓存中的地址;size表示ACL的长度。 图2-17 ext4_acl_from_disk()函数调用流程图 如图2-17所示,下面对该函数主要执行步骤进行说明: ① 通过对value及size进行相关的检查来判断参数的有效性。 ② 调用ext4_acl_count()函数来获得访问控制列表中访问控制列表项的数量。 ③ 调用posix_acl_alloc()函数来根据访问控制列表项的项数分配相应的存储空间。 ④ 通过循环将ACL中的表项从磁盘表示形式转换为内存表示形式,并用其来设置相应内存形式的ACL表项。 ⑤ 结束并返回acl。 对于ext4_acl_to_disk(),其实现和ext4_acl_from_disk()函数相似,所以这里不对其详细讨论。 | |||||||||||||||||||||||||||||
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|