函数fseg_set_nth_frag_page_no

时间:2025-02-09 19:36:44
/**********************************************************************//**
Sets the page number in the nth fragment page slot. */
UNIV_INLINE
void
fseg_set_nth_frag_page_no(
/*======================*/
    fseg_inode_t*    inode,    /*!< in: segment inode */
    ulint        n,    /*!< in: slot index */
    ulint        page_no,/*!< in: page number to set */
    mtr_t*        mtr)    /*!< in: mtr handle */
{
    ut_ad(inode && mtr);
    ut_ad(n < FSEG_FRAG_ARR_N_SLOTS);
    ut_ad(mtr_memo_contains_page(mtr, inode, MTR_MEMO_PAGE_X_FIX));
    ut_ad(mach_read_from_4(inode + FSEG_MAGIC_N) == FSEG_MAGIC_N_VALUE);

    mlog_write_ulint(inode + FSEG_FRAG_ARR + n * FSEG_FRAG_SLOT_SIZE,
             page_no, MLOG_4BYTES, mtr);
}