diff options
author | unknown <mronstrom@mysql.com> | 2005-06-03 22:52:24 +0200 |
---|---|---|
committer | unknown <mronstrom@mysql.com> | 2005-06-03 22:52:24 +0200 |
commit | 26bd158216e600c5f7ec7eaec9007fa761ea5195 (patch) | |
tree | 77ad901d0b8973c4e698331e4257ef13d3d40ced /myisam | |
parent | f956ecd09a4897b5f7e65a0441445a52406a3a8a (diff) | |
download | mariadb-git-26bd158216e600c5f7ec7eaec9007fa761ea5195.tar.gz |
Bug #10901
After review fix
Copy from internal state to share state only when in lock write
mode (happens only when lock table x write has been performed since
update_state_info is only called when holding a TL_READ_NO_INSERT
lock normally. Previous patch would have failed in combination with
delayed writes.
Diffstat (limited to 'myisam')
-rw-r--r-- | myisam/mi_check.c | 6 |
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; |