這篇文章主要介紹了cephfs linux kernel client針對ceph_inode_info相關(guān)工作隊(duì)列處理函數(shù)的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)建站于2013年成立,先為全南等服務(wù)建站,全南等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為全南企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
struct ceph_inode_info {
......
struct work_struct i_wb_work; //writeback work
struct work_struct i_pg_inv_work; //page invaliate work
struct work_struct i_vmtruncate_work;
......
};
struct ceph_inode_info->i_wb_work工作隊(duì)列處理函數(shù)
ceph_writeback_work(struct work_struct *work)
|__從work得到struct ceph_inode_info結(jié)構(gòu)
|__從struct ceph_inode_info結(jié)構(gòu)得到struct inode結(jié)構(gòu)
|__調(diào)用filemap_fdatawrite(&inode->i_data)函數(shù)將inode->i_data指定的struct address_space中的dirty數(shù)據(jù)回寫到ceph集群中
|__調(diào)用__filemap_fdatawrite()函數(shù)
|__調(diào)用__filemap_fdatawrite_range()函數(shù)
|__創(chuàng)建struct writeback_control結(jié)構(gòu)且初始化
|__調(diào)用wbc_attach_fdatawrite_inode()函數(shù)將struct writeback_control結(jié)構(gòu)添加到struct inode中
|__調(diào)用do_writepages()函數(shù)將struct address_space中的dirty數(shù)據(jù)回寫到ceph集群
|__調(diào)用ceph_writepages_start()函數(shù)進(jìn)行數(shù)據(jù)回寫操作
struct ceph_inode_info->i_pg_inv_work工作隊(duì)列處理函數(shù)
ceph_invalidate_work(struct work_struct *work)
|__從work得到struct ceph_inode_info結(jié)構(gòu)
|__從struct ceph_inode_info結(jié)構(gòu)得到struct inode結(jié)構(gòu)
|__從struct inode結(jié)構(gòu)得到struct ceph_fs_client結(jié)構(gòu)
|__調(diào)用invalidate_inode_page2()函數(shù)清除掉inode->i_mapping指定的struct address_space中的所有pages
struct ceph_inode_info->i_vmtruncate_work工作隊(duì)列處理函數(shù)
ceph_vmtruncate_work(struct work_strcut *work)
|__從work得到struct ceph_inode_info結(jié)構(gòu)
|__從struct ceph_inode_info結(jié)構(gòu)得到struct inode結(jié)構(gòu)
|__調(diào)用__ceph_do_pending_vmtruncate()函數(shù)truncate struct inode結(jié)構(gòu)中的struct address_space對應(yīng)的所有pages
|__調(diào)用truncate_pagecache()函數(shù)解除映射并且刪除已經(jīng)truncated的pagecache
|__調(diào)用wake_up_all(&ci->i_cap_wq)函數(shù)喚醒struct ceph_inode_info->i_cap_wq上的等待進(jìn)程
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“cephfs linux kernel client針對ceph_inode_info相關(guān)工作隊(duì)列處理函數(shù)的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!