真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

cephfslinuxkernelclient針對(duì)export的操作代碼

這篇文章主要介紹cephfs linux kernel client針對(duì)export的操作代碼,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

成都服務(wù)器托管,創(chuàng)新互聯(lián)提供包括服務(wù)器租用、眉山聯(lián)通機(jī)房、帶寬租用、云主機(jī)、機(jī)柜租用、主機(jī)租用托管、CDN網(wǎng)站加速、國(guó)際域名空間等業(yè)務(wù)的一體化完整服務(wù)。電話咨詢:18980820575

const struct export_operations ceph_export_ops = {

        .encode_fh = ceph_encode_fh,

        .fh_to_dentry = ceph_fh_to_dentry,

        .fh_to_parent = ceph_fh_to_parent,

        .get_parent = ceph_get_parent,

        .get_name = ceph_get_name,

};

ceph_encode_fh(struct inode *inode, u32 *rawfh, int *max_len, struct inode *parent_inode)

|__調(diào)用ceph_snap(inode)函數(shù)檢查inode是否包含snap信息,若包含snap則直接返回

|__輸入?yún)?shù)校驗(yàn)

    |__若parent_inode不為空且max_len小于sizeof(struct ceph_nfs_confh)/4

        |__設(shè)置max_len=sizeof(struct ceph_nfs_confh)/4

        |__直接返回

    |__若parent_inode為空且max_len小于sizeof(struct ceph_nfs_fh)/4

        |__設(shè)置max_len=sizeof(struct ceph_nfs_fh)/4

        |__直接返回

|__若parent_inode不為空

    |__設(shè)置struct ceph_nfs_confh的ino為inode的ino

    |__設(shè)置struct ceph_nfs_confh的parent_ino為parent_inode的ino

    |__設(shè)置max_len為sizeof(struct ceph_nfs_confh)/4

    |__返回FILEID_INO32_GEN_PARENT

|__若parent_inode為空

    |__設(shè)置struct ceph_nfs_fh的ino為inode的ino

    |__設(shè)置max_len為sizeof(struct ceph_nfs_fh)/4

    |__返回FILEID_INO32_GEN

ceph_fs_to_dentry(struct super_block *sb, struct fid *fid, int fh_len, int fh_type)

|__通過fid得到struct ceph_nfs_fh對(duì)象

|__檢查fh_type是否是FILEID_INO32_GEN或FILEID_INO32_GEN_PARENT,若不是則直接返回

|__調(diào)用__fh_to_dentry(sb, fh->ino)函數(shù)找到fh->ino對(duì)應(yīng)的dentry結(jié)構(gòu)

__fh_to_dentry(struct super_block *sb, u64 ino)

|__通過sb得到struct ceph_mds_client結(jié)構(gòu)

|__調(diào)用ceph_find_inode()函數(shù)得到ino指定的struct inode結(jié)構(gòu)

|__若struct inode結(jié)構(gòu)為空

    |__調(diào)用ceph_mdsc_create_request(CEPH_MDS_OP_LOOKUPINO)函數(shù)創(chuàng)建查找指定inode的請(qǐng)求

    |__調(diào)用ceph_mdsc_do_reqeust()函數(shù)將請(qǐng)求發(fā)送給mds集群得到指定inode number對(duì)應(yīng)的inode結(jié)構(gòu)

|__調(diào)用d_obtain_alias(inode)函數(shù)得到inode對(duì)應(yīng)的dentry信息

|__調(diào)用ceph_init_dentry()函數(shù)來(lái)初始化dentry數(shù)據(jù)結(jié)構(gòu)

ceph_fh_to_parent(struct super_block *sb, struct fid *fid, int fh_len, int fh_type)

|__通過sb得到struct ceph_mds_client結(jié)構(gòu)

|__調(diào)用__get_parent()函數(shù)獲取cfh->ino對(duì)應(yīng)的parent的dentry結(jié)構(gòu)

|__若獲取parent的dentry結(jié)構(gòu)失敗

    |__調(diào)用__fh_to_dentry(sb, cfh->parent_ino)函數(shù)獲取parent_ino對(duì)應(yīng)的dentry結(jié)構(gòu)

__get_parent(struct super_block *sb, struct dentry *child, u64 ino)

|__通過sb得到struct ceph_mds_client結(jié)構(gòu)

|__調(diào)用ceph_mdsc_create_request(CEPH_MDS_OP_LOOKUPPARENT)函數(shù)創(chuàng)建查找parent inode的請(qǐng)求

|__調(diào)用ceph_mdsc_do_request()函數(shù)將請(qǐng)求發(fā)送給mds集群

|__從請(qǐng)求的r_target_inode字段得到parent inode信息

|__調(diào)用d_obtain_alias(inode)函數(shù)得到inode對(duì)應(yīng)的dentry

|__調(diào)用ceph_init_dentry(dentry)函數(shù)初始化dentry數(shù)據(jù)結(jié)構(gòu)

ceph_get_parent(struct dentry *child)

|__調(diào)用ceph_snap()函數(shù)檢查child是否包含snap,若包含snap則直接返回

|__調(diào)用__get_parent()函數(shù)獲取child對(duì)應(yīng)parent的dentry結(jié)構(gòu)

ceph_get_name(struct dentry *parent, char *name, struct dentry *child)

|__從child得到struct ceph_mds_client數(shù)據(jù)結(jié)構(gòu)

|__調(diào)用ceph_mdsc_create_request(CEPH_MDS_OP_LOOKUPNAME)函數(shù)創(chuàng)建查找inode name的請(qǐng)求

|__調(diào)用ceph_mdsc_do_request()函數(shù)將請(qǐng)求同步發(fā)送給mds集群

|__調(diào)用memcpy()函數(shù)將請(qǐng)求的返回信息中的dname復(fù)制到name中

以上是“cephfs linux kernel client針對(duì)export的操作代碼”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前題目:cephfslinuxkernelclient針對(duì)export的操作代碼
本文URL:http://weahome.cn/article/psegjg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部