91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

cephfs kernel client針對inode的相關操作代碼

發布時間:2021-12-17 10:01:48 來源:億速云 閱讀:247 作者:小新 欄目:云計算

小編給大家分享一下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的相關操作代碼”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

方正县| 平和县| 敖汉旗| 买车| 扎兰屯市| 临汾市| 淮安市| 靖宇县| 正镶白旗| 抚州市| 右玉县| 轮台县| 上林县| 和林格尔县| 石柱| 安达市| 高要市| 曲周县| 密山市| 增城市| 申扎县| 克东县| 凤阳县| 竹溪县| 韶关市| 枣阳市| 平昌县| 台江县| 崇阳县| 通化市| 星座| 龙陵县| 海阳市| 庆安县| 新源县| 涪陵区| 南安市| 曲周县| 潍坊市| 民和| 门头沟区|