文件五 acl.c 文件描述 acl.c的完整文件名称为fs/ext4/acl.c,该文件定义了ACL在ext4文件系统中相关操作的具体实现。 主要变量及宏定义 对于该文件中涉及的变量及宏的含义参见2.3小节,这里不再赘述。 结构体定义 对于该文件使用的结构体如posix_acl等参见2.3小节,这里不再赘述。 外部函数 对于该文件涉及的外部函数,详见2.3小节,这里不再赘述。 内部函数 对于该文件定义的相关函数,下面进行详细解释: 1.ext4_acl_from_disk() 函数原型:staticstruct posix_acl*ext4_acl_from_disk(constvoid *value, size_t size); 函数参数:value表示磁盘格式的ACL在缓存中的地址;size表示ACL的长度。 函数功能:将ACL的磁盘表示格式转化为内存表示格式。 返回值:成功执行时返回指向ACL内存表示形式的指针;失败时返回指向相应的错误信息的指针。 2.ext4_acl_to_disk() 函数原型:static void *ext4_acl_to_disk(conststruct posix_acl*acl, size_t *size); 函数参数:acl指向内存格式的ACL;size表示存放访问控制列表的内存空间的长度。 函数功能:将ACL从内存表示形式转化为磁盘表示形式。 返回值:成功时返回指向磁盘格式的ACL指针;失败时返回相应的指向错误信息的指针。 3.ext4_get_acl() 函数原型:struct posix_acl *ext4_get_acl(struct inode *inode, int type); 函数参数:inode表示要操作的目标文件;type表示访问控制列表的类型。 函数功能:根据参数type指定的类型获取指定索引节点的ACL属性。 返回值:成功时返回指向相应ACL的指针;失败时返回指向错误信息的指针。 4.ext4_set_acl 函数原型:static int ext4_set_acl(handle_t *handle, struct inode *inode, int type, struct posix_acl *acl); 函数参数:handle表示用于日志处理的原子更新操作;inode表示用于设置的目标文件; type表示访问控制列表的类型;acl指向文件的新的访问控制列表。 函数功能:根据参数acl设置文件的指定类型的访问控制列表ACL。 返回值:成功时返回相应的内部调用函数的返回值;失败时返回相应的错误码。 5.ext4_init_acl() 函数原型:int ext4_init_acl(handle_t *handle, struct inode *inode, struct inode *dir); 函数参数:handle表示用于日志处理的原子更新操作;inode表示指向新建文件的索引节点;dir表示文件所属目录的索引节点。 函数功能:初始化一个新文件的ACL。 返回值:成功时返回相应的内部调用函数的返回值;失败时返回相应的错误码。 6.ext4_acl_chmod() 函数原型:int ext4_acl_chmod(structinode *inode); 函数参数:inode表示待设置的目标索引节点。 函数功能:在调用chmod命令修改文件的权限时,根据指定的权限来修改目标文件中用于访问控制的ACL。 返回值:成功时返回0;失败时返回相应的错误码。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|