diff options
Diffstat (limited to 'storage/innobase/include/fut0lst.h')
-rw-r--r-- | storage/innobase/include/fut0lst.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/storage/innobase/include/fut0lst.h b/storage/innobase/include/fut0lst.h index 3f68660ae89..9fa928eda23 100644 --- a/storage/innobase/include/fut0lst.h +++ b/storage/innobase/include/fut0lst.h @@ -85,8 +85,12 @@ inline void flst_init(buf_block_t* block, uint16_t ofs, mtr_t* mtr) @param[in,out] mtr mini-transaction */ inline void flst_zero_addr(fil_faddr_t* faddr, mtr_t* mtr) { - mlog_memset(faddr + FIL_ADDR_PAGE, 4, 0xff, mtr); - mlog_write_ulint(faddr + FIL_ADDR_BYTE, 0, MLOG_2BYTES, mtr); + if (mach_read_from_4(faddr + FIL_ADDR_PAGE) != FIL_NULL) { + mlog_memset(faddr + FIL_ADDR_PAGE, 4, 0xff, mtr); + } + if (mach_read_from_2(faddr + FIL_ADDR_BYTE)) { + mlog_write_ulint(faddr + FIL_ADDR_BYTE, 0, MLOG_2BYTES, mtr); + } } /********************************************************************//** |