diff options
Diffstat (limited to 'storage/innobase/mtr/mtr0mtr.cc')
-rw-r--r-- | storage/innobase/mtr/mtr0mtr.cc | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/storage/innobase/mtr/mtr0mtr.cc b/storage/innobase/mtr/mtr0mtr.cc index d2569517c49..3eacd3ab7e1 100644 --- a/storage/innobase/mtr/mtr0mtr.cc +++ b/storage/innobase/mtr/mtr0mtr.cc @@ -665,15 +665,15 @@ bool mtr_t::commit_file(fil_space_t &space, const char *name) if (name) { + char *new_name= mem_strdup(name); + mysql_mutex_lock(&fil_system.mutex); success= os_file_rename(innodb_data_file_key, old_name, name); - if (success) - { - mysql_mutex_lock(&fil_system.mutex); - space.chain.start->name= mem_strdup(name); - mysql_mutex_unlock(&fil_system.mutex); - ut_free(old_name); - } + space.chain.start->name= new_name; + else + old_name= new_name; + mysql_mutex_unlock(&fil_system.mutex); + ut_free(old_name); } else { @@ -1644,7 +1644,7 @@ void mtr_t::free(const fil_space_t &space, uint32_t offset) slot.type= MTR_MEMO_PAGE_X_MODIFY; #ifdef BTR_CUR_HASH_ADAPT if (block->index) - btr_search_drop_page_hash_index(block); + btr_search_drop_page_hash_index(block, false); #endif /* BTR_CUR_HASH_ADAPT */ block->page.set_freed(block->page.state()); } |