summaryrefslogtreecommitdiff
path: root/myisam/mi_locking.c
diff options
context:
space:
mode:
Diffstat (limited to 'myisam/mi_locking.c')
-rw-r--r--myisam/mi_locking.c9
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;
}