博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pageout
阅读量:4154 次
发布时间:2019-05-25

本文共 1127 字,大约阅读时间需要 3 分钟。

 

/*

 * pageout is called by shrink_page_list() foreach dirty page.

 * Calls ->writepage().

 */

staticpageout_t pageout(struct page *page, struct address_space *mapping,

                      struct scan_control *sc)

{

 

       if (!is_page_cache_freeable(page))

              return PAGE_KEEP;

 

       if (!mapping) {

              if (page_has_private(page)) {

                     if(try_to_free_buffers(page)) {

                            ClearPageDirty(page);

                            pr_info("%s:orphaned page\n", __func__);

                            return PAGE_CLEAN;

                     }

              }

              return PAGE_KEEP;

       }

       if (mapping->a_ops->writepage ==NULL)

              return PAGE_ACTIVATE;

       if (!may_write_to_inode(mapping->host,sc))

              return PAGE_KEEP;

 

       if(clear_page_dirty_for_io(page)) {

              int res;

              struct writeback_control wbc = {

                     .sync_mode = WB_SYNC_NONE,

                     .nr_to_write =SWAP_CLUSTER_MAX,

                     .range_start = 0,

                     .range_end = LLONG_MAX,

                     .for_reclaim = 1,

              };

 

              SetPageReclaim(page);

              res = mapping->a_ops->writepage(page, &wbc);

              if (res < 0)

                     handle_write_error(mapping,page, res);

              if (res == AOP_WRITEPAGE_ACTIVATE){

                     ClearPageReclaim(page);

                     return PAGE_ACTIVATE;

              }

 

              if (!PageWriteback(page)) {

                     ClearPageReclaim(page);

              }

              trace_mm_vmscan_writepage(page);

              inc_zone_page_state(page, NR_VMSCAN_WRITE);

              return PAGE_SUCCESS;

       }

 

       return PAGE_CLEAN;

}

转载地址:http://zaqti.baihongyu.com/

你可能感兴趣的文章
基于“分形”编写的交互应用
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>
Piper Sandler为EverArc收购Perimeter Solutions提供咨询服务
查看>>
RMRK筹集600万美元,用于在Polkadot上建立先进的NFT系统标准
查看>>
JavaSE_day14 集合中的Map集合_键值映射关系
查看>>
异常 Java学习Day_15
查看>>
Mysql初始化的命令
查看>>
MySQL关键字的些许问题
查看>>
浅谈HTML
查看>>
css基础
查看>>
Servlet进阶和JSP基础
查看>>
servlet中的cookie和session
查看>>
过滤器及JSP九大隐式对象
查看>>
软件(项目)的分层
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>