diff options
Diffstat (limited to 'myisam/mi_locking.c')
-rw-r--r-- | myisam/mi_locking.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/myisam/mi_locking.c b/myisam/mi_locking.c index a5cbdd4f906..4797584627a 100644 --- a/myisam/mi_locking.c +++ b/myisam/mi_locking.c @@ -177,18 +177,19 @@ int mi_lock_database(MI_INFO *info, int lock_type) if (!share->w_locks) { flag=1; - VOID(my_seek(share->kfile,0L,MY_SEEK_SET,MYF(0))); - if (my_lock(share->kfile,lock_type,0L,F_TO_EOF,info->lock_wait)) + if (my_lock(share->kfile,lock_type,0L,F_TO_EOF, + info->lock_wait | MY_SEEK_NOT_DONE)) { error=my_errno; break; } if (!share->r_locks) { - if (mi_state_info_read_dsk(share->kfile, &share->state, 0)) + if (mi_state_info_read_dsk(share->kfile, &share->state, 1)) { error=my_errno; - VOID(my_lock(share->kfile,F_UNLCK,0L,F_TO_EOF,info->lock_wait)); + VOID(my_lock(share->kfile,F_UNLCK,0L,F_TO_EOF, + info->lock_wait | MY_SEEK_NOT_DONE)); my_errno=error; break; } |