linux缓存文件地址,如何遍历linux内核中的文件地址空间的页面缓存树(基数树)

我从

Linux内核源代码中找到了它.

struct file *file = filp_open("filename",O_RDONLY,0);

struct address_space *file_addr_space = file->f_mapping;

if(file_addr_space==NULL){

printk("error")

}

struct radix_tree_root file_page_tree_root = file_addr_space->page_tree; //contains all pages in page cache

struct radix_tree_iter iter;

void **slot;

int num_dirty = 0;

radix_tree_for_each_slot(slot,&file_page_tree_root,&iter,0){

struct page *page = radix_tree_deref_slot(slot);

if(page!=NULL){

//printk("information about page");

}

}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部