千家信息网

cephfs kernel client针对inode的相关操作代码

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,小编给大家分享一下cephfs kernel client针对inode的相关操作代码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!针对文件的inode的操作体现在数据结构struc
千家信息网最后更新 2025年02月05日cephfs kernel client针对inode的相关操作代码

小编给大家分享一下cephfs kernel client针对inode的相关操作代码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

针对文件的inode的操作体现在数据结构struct inode_operations中,具体内容如下:

const struct inode_operations ceph_file_iops = {

.permission = ceph_permission,

.setattr = ceph_setattr,

.getattr = ceph_getattr,

.setxattr = generic_setxattr,

.getxattr = generic_getxattr,

.listxattr = ceph_listxattr,

.removexattr = generic_removexattr,

.get_acl = ceph_get_acl,

.set_acl = ceph_set_acl,

};

ceph_permission(struct inode *inode, int mask) 检查inode是否有mask指定的访问权限

|__调用ceph_do_getattr()函数从本地缓存或mds集群中得到CEPH_CAP_AUTH_SHARED对应的权限

|__调用generic_permission()函数做常规的权限检查

ceph_setattr(struct dentry *dentry, struct iattr *attr) 设置文件属性时调用该函数

|__调用__ceph_setattr()函数

|__调用ceph_mdsc_create_request()函数创建mds集群请求

|__根据设置具体属性的内容如:ATTR_UID/ATTR_GID/ATTR_MODE/ATTR_ATIME/ATTR_MTIME/ATTR_SIZE/ATTR_CTIME设置请求数据结构中的具体项

|__调用ceph_mdsc_do_reqeust()函数将请求同步发送给mds进程

ceph_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) 获取文件属性时调用该函数

|__调用ceph_do_getattr(CEPH_STAT_CAP_INODE_ALL)函数从mds集群中读取inode的所有属性值

|__调用generic_fillattr()函数设置通用的属性值到stat中

|__将cephfs相关的属性值设置到stat中

ceph_listxattr(struct dentry *dentry, char *names, size_t size) 列出inode的xattrs时该函数被调用

|__若xattrs的version为0

|__调用ceph_do_getattr(CEPH_STAT_CAP_XATTR)函数从mds集群中读取xattr信息

|__调用__build_xattrs()函数创建xattr属性

|__调用__copy_xattr_names()函数将xattr属性的所有名字信息复制到names数组中

ceph_get_acl(struct inode *inode, int type) 读取inode的acl信息时调用该函数

|__调用__ceph_getxattr()函数从mds集群中读取XATTR_NAME_POSIX_ACL_ACCESS或XATTR_NAME_POSIX_ACL_DEFUALT的属性值

|__调用posix_acl_from_xattr()函数将acl信息读取到内存中的struct posix_acl数据结构中

|__调用ceph_set_cache_acl()函数将内存中的struct posix_acl数据结构写入到cache中

ceph_set_acl(struct inode *inode, struct posix_acl *acl, int type) 设置inode的acl信息时调用该函数

|__调用posix_acl_xattr_size()函数得到xattr的大小

|__调用posix_acl_to_xattr()函数将acl转换成xattr格式

|__调用__ceph_setxattr()函数将acl转换的xattr数据写入到mds集群

|__调用ceph_set_cached_acl()函数将新的acl信息写入到cache中

看完了这篇文章,相信你对"cephfs kernel client针对inode的相关操作代码"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

函数 属性 信息 集群 数据 数据结构 时调 结构 文件 权限 代码 内存 内容 篇文章 检查 中看 名字 大小 完了 常规 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 大专学的计算机网络技术好吗 互联网科技强势入驻华北区 网络安全主要威胁的含义 软件开发3层架构 湖北生物科技互联网 如何展现公司的软件开发能力 英语不好学计算机网络技术 Access数据库独立安装版 云服务器-%3e安全组 数据库课后习题题目及答案 分析一下大学生网络安全的重要 ftb服务器如何搜索 软件开发清单文档 内蒙古志愿填报数据库 济宁市国家网络安全宣传周 天津市网络安全工作责任制 互联网金融科技成就展 服务器管理软件 下载 在大学学习软件开发难吗 北京最有名的软件开发公司 网络安全策略怎么打开 华为网络安全证书是全国通用吗 金山区智能软件开发哪家好 网络安全知识的手抄报内容 数据库管理用什么软件 杭州正规软件开发值得推荐 算法和软件开发哪个比较简单 软件开发一个1千 网络安全法的通过时间 专升本数据库和c语言
0