/**********************************************************************//**
Allocates a single free page from a space. */
static __attribute__((nonnull))
void
fsp_alloc_from_free_frag(
/*=====================*/
    fsp_header_t*    header,    /*!< in/out: tablespace header */
    xdes_t*        descr,    /*!< in/out: extent descriptor */
    ulint        bit,    /*!< in: slot to allocate in the extent */
    mtr_t*        mtr)    /*!< in/out: mini-transaction */
{
    ulint        frag_n_used;

    ut_ad(xdes_get_state(descr, mtr) == XDES_FREE_FRAG);
    ut_a(xdes_get_bit(descr, XDES_FREE_BIT, bit, mtr));
    xdes_set_bit(descr, XDES_FREE_BIT, bit, FALSE, mtr);

    /* Update the FRAG_N_USED field */
    frag_n_used = mtr_read_ulint(header + FSP_FRAG_N_USED, MLOG_4BYTES,
                     mtr);
    frag_n_used++;
    mlog_write_ulint(header + FSP_FRAG_N_USED, frag_n_used, MLOG_4BYTES,
             mtr);
    if (xdes_is_full(descr, mtr)) {
        /* The fragment is full: move it to another list */
        flst_remove(header + FSP_FREE_FRAG, descr + XDES_FLST_NODE,mtr); //移除node到 FSP_FULL_FRAGE 详见
        xdes_set_state(descr, XDES_FULL_FRAG, mtr);
        flst_add_last(header + FSP_FULL_FRAG, descr + XDES_FLST_NODE,mtr);
        mlog_write_ulint(header + FSP_FRAG_N_USED,frag_n_used - FSP_EXTENT_SIZE, MLOG_4BYTES,mtr);
    }
}

最新文章

  1. 【腾讯Bugly干货分享】微信终端跨平台组件 Mars 系列 - 我们如约而至
  2. shc
  3. web.xml 模板和Servlet版本
  4. &lt;SharePoint 2013 用户界面设计与品牌化&gt;学习系列之---基础
  5. oracle存储过程执行中输出日志文件
  6. new和malloc的区别
  7. 解决jquery mobile的遇到高版本Chrome一直转圈,页面加载不出来的情况。
  8. objective_C 优缺点
  9. js获取页面的来源页
  10. vue子父组件通信
  11. unity零基础开始学习做游戏(二)让你的对象动起来
  12. H5 可堆叠的圆环进度条,支持任意数量子进度条
  13. springboot解决文件上传大小限制
  14. Ubuntu 将其他盘挂载到/home的子目录下
  15. Java教程01-基础语法
  16. [洛谷P1484] 种树
  17. 微信小程序获取用户信息
  18. %date~0,4%和 %time~0,2%等用法详解(转)
  19. socket.io笔记三之子命名空间的socket连接
  20. Mirror--如何TSQL查看镜像状态和镜像相关存储过程

热门文章

  1. UML类图关系-转
  2. ios开发之数据存取1-SQLite
  3. 飞信免费发送接口API的测试 httpClient
  4. getHibernateTemplate()为NUll
  5. C# foreach循环绑定key数组和value 数组(备用)
  6. 青鸟 王云鹏老师写的SqlHelper 泛型方法,反射,支持实体类
  7. SDUT1574组合数的计算(组合数)
  8. Oracle 学习笔记(二)
  9. floodlight make the VMs can not getDHCP IP address
  10. 朴素贝叶斯方法(Naive Bayes Method)