summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--myisam/mi_check.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/myisam/mi_check.c b/myisam/mi_check.c
index 16946adb3e8..a7c3d2a6f7e 100644
--- a/myisam/mi_check.c
+++ b/myisam/mi_check.c
@@ -3626,9 +3626,11 @@ int update_state_info(MI_CHECK *param, MI_INFO *info,uint update)
/*
When tables are locked we haven't synched the share state and the
real state for a while so we better do it here before synching
- the share state to disk.
+ the share state to disk. Only when table is write locked is it
+ necessary to perform this synch.
*/
- share->state.state= *info->state;
+ if (info->lock_type == F_WRLCK)
+ share->state.state= *info->state;
if (mi_state_info_write(share->kfile,&share->state,1+2))
goto err;
share->changed=0;