Lines Matching refs:share

30   MARIA_SHARE *share= info->s;  in maria_lock_database()  local
34 lock_type, info->lock_type, share->r_locks, in maria_lock_database()
35 share->w_locks, in maria_lock_database()
36 share->global_changed, share->state.open_count, in maria_lock_database()
37 share->index_file_name.str)); in maria_lock_database()
38 if (share->options & HA_OPTION_READ_ONLY_DATA || in maria_lock_database()
43 ++share->w_locks; in maria_lock_database()
44 ++share->tot_locks; in maria_lock_database()
51 mysql_mutex_lock(&share->intern_lock); in maria_lock_database()
52 if (share->kfile.file >= 0) /* May only be false on windows */ in maria_lock_database()
59 count= --share->r_locks; in maria_lock_database()
60 if (share->lock_restore_status) in maria_lock_database()
61 (*share->lock_restore_status)(info); in maria_lock_database()
65 count= --share->w_locks; in maria_lock_database()
66 if (share->lock.update_status) in maria_lock_database()
69 --share->tot_locks; in maria_lock_database()
70 if (info->lock_type == F_WRLCK && !share->w_locks) in maria_lock_database()
73 if (!share->base.born_transactional && !share->temporary && in maria_lock_database()
75 share->delay_key_write ? MARIA_FLUSH_DATA : in maria_lock_database()
85 _ma_set_fatal_error(share, error); in maria_lock_database()
91 (uint) share->changed, share->w_locks)); in maria_lock_database()
92 if (share->changed && !share->w_locks) in maria_lock_database()
95 if ((share->mmaped_length != in maria_lock_database()
96 share->state.state.data_file_length) && in maria_lock_database()
97 (share->nonmmaped_inserts > MAX_NONMAPPED_INSERTS)) in maria_lock_database()
99 if (share->lock_key_trees) in maria_lock_database()
100 mysql_rwlock_wrlock(&share->mmap_lock); in maria_lock_database()
101 _ma_remap_file(info, share->state.state.data_file_length); in maria_lock_database()
102 share->nonmmaped_inserts= 0; in maria_lock_database()
103 if (share->lock_key_trees) in maria_lock_database()
104 mysql_rwlock_unlock(&share->mmap_lock); in maria_lock_database()
108 share->state.process= share->last_process=share->this_process; in maria_lock_database()
109 share->state.unique= info->last_unique= info->this_unique; in maria_lock_database()
110 share->state.update_count= info->last_loop= ++info->this_loop; in maria_lock_database()
113 if (!share->base.born_transactional) in maria_lock_database()
115 if (_ma_state_info_write_sub(share->kfile.file, &share->state, in maria_lock_database()
121 share->changed= 0; in maria_lock_database()
130 share->not_flushed=1; in maria_lock_database()
132 _ma_set_fatal_error(share, error); in maria_lock_database()
147 share->w_locks--; in maria_lock_database()
148 share->r_locks++; in maria_lock_database()
153 if (!share->r_locks && !share->w_locks) in maria_lock_database()
156 if (_ma_state_info_read_dsk(share->kfile.file, &share->state)) in maria_lock_database()
164 share->r_locks++; in maria_lock_database()
165 share->tot_locks++; in maria_lock_database()
171 if (share->r_locks == 1) in maria_lock_database()
173 share->r_locks--; in maria_lock_database()
174 share->w_locks++; in maria_lock_database()
180 if (!(share->options & HA_OPTION_READ_ONLY_DATA)) in maria_lock_database()
182 if (!share->w_locks) in maria_lock_database()
184 if (!share->r_locks) in maria_lock_database()
202 if (_ma_state_info_read_dsk(share->kfile.file, &share->state)) in maria_lock_database()
214 info->invalidator=share->invalidator; in maria_lock_database()
215 share->w_locks++; in maria_lock_database()
216 share->tot_locks++; in maria_lock_database()
239 mysql_mutex_unlock(&share->intern_lock); in maria_lock_database()
257 MARIA_SHARE *share= info->s; in _ma_readinfo() local
258 if (!share->tot_locks) in _ma_readinfo()
261 if (_ma_state_info_read_dsk(share->kfile.file, &share->state)) in _ma_readinfo()
270 info->invalidator=share->invalidator; in _ma_readinfo()
295 MARIA_SHARE *share= info->s; in _ma_writeinfo() local
298 share->tot_locks)); in _ma_writeinfo()
301 if (share->tot_locks == 0 && !share->base.born_transactional) in _ma_writeinfo()
313 share->state.process= share->last_process= share->this_process; in _ma_writeinfo()
314 share->state.unique= info->last_unique= info->this_unique; in _ma_writeinfo()
315 share->state.update_count= info->last_loop= ++info->this_loop; in _ma_writeinfo()
319 _ma_state_info_write_sub(share->kfile.file, in _ma_writeinfo()
320 &share->state, in _ma_writeinfo()
326 _commit(share->kfile.file); in _ma_writeinfo()
334 share->changed= 1; /* Mark keyfile changed */ in _ma_writeinfo()
347 MARIA_SHARE *share= info->s; in _ma_test_if_changed() local
348 if (share->state.process != share->last_process || in _ma_test_if_changed()
349 share->state.unique != info->last_unique || in _ma_test_if_changed()
350 share->state.update_count != info->last_loop) in _ma_test_if_changed()
353 if (share->state.process != share->this_process) in _ma_test_if_changed()
354 VOID(flush_pagecache_blocks(share->pagecache, &share->kfile, in _ma_test_if_changed()
356 share->last_process=share->state.process; in _ma_test_if_changed()
357 info->last_unique= share->state.unique; in _ma_test_if_changed()
358 info->last_loop= share->state.update_count; in _ma_test_if_changed()
389 ((share->state.changed & STATE_CHANGED) && share->global_changed)
391 int _ma_mark_file_changed(register MARIA_SHARE *share) in _ma_mark_file_changed() argument
393 if (!share->base.born_transactional) in _ma_mark_file_changed()
396 return _ma_mark_file_changed_now(share); in _ma_mark_file_changed()
406 if (! test_all_bits(share->state.changed, in _ma_mark_file_changed()
410 mysql_mutex_lock(&share->intern_lock); in _ma_mark_file_changed()
411 share->state.changed|=(STATE_CHANGED | STATE_NOT_ANALYZED | in _ma_mark_file_changed()
413 mysql_mutex_unlock(&share->intern_lock); in _ma_mark_file_changed()
419 int _ma_mark_file_changed_now(register MARIA_SHARE *share) in _ma_mark_file_changed_now() argument
427 mysql_mutex_lock(&share->intern_lock); /* recheck under mutex */ in _ma_mark_file_changed_now()
430 share->state.changed|=(STATE_CHANGED | STATE_NOT_ANALYZED | in _ma_mark_file_changed_now()
432 if (!share->global_changed) in _ma_mark_file_changed_now()
434 share->changed= share->global_changed= 1; in _ma_mark_file_changed_now()
435 share->state.open_count++; in _ma_mark_file_changed_now()
447 if (!share->temporary) in _ma_mark_file_changed_now()
449 mi_int2store(buff,share->state.open_count); in _ma_mark_file_changed_now()
451 if (my_pwrite(share->kfile.file, buff, sizeof(buff), in _ma_mark_file_changed_now()
452 sizeof(share->state.header) + in _ma_mark_file_changed_now()
458 if (share->base.born_transactional && in _ma_mark_file_changed_now()
459 !(share->state.org_changed & STATE_NOT_MOVABLE)) in _ma_mark_file_changed_now()
462 if (_ma_set_uuid(share, 0) || in _ma_mark_file_changed_now()
463 (share->state.create_rename_lsn == LSN_NEEDS_NEW_STATE_LSNS && in _ma_mark_file_changed_now()
464 _ma_update_state_lsns_sub(share, LSN_IMPOSSIBLE, in _ma_mark_file_changed_now()
468 share->state.changed|= STATE_NOT_MOVABLE; in _ma_mark_file_changed_now()
469 share->state.org_changed|= STATE_NOT_MOVABLE; in _ma_mark_file_changed_now()
474 mysql_mutex_unlock(&share->intern_lock); in _ma_mark_file_changed_now()
508 register MARIA_SHARE *share= info->s; in _ma_decrement_open_count() local
512 if (share->global_changed) in _ma_decrement_open_count()
515 share->global_changed=0; in _ma_decrement_open_count()
519 if (share->state.open_count > 0) in _ma_decrement_open_count()
521 share->state.open_count--; in _ma_decrement_open_count()
522 share->changed= 1; /* We have to update state */ in _ma_decrement_open_count()
529 if (!share->temporary && !share->now_transactional) in _ma_decrement_open_count()
531 mi_int2store(buff,share->state.open_count); in _ma_decrement_open_count()
532 write_error= (int) my_pwrite(share->kfile.file, buff, sizeof(buff), in _ma_decrement_open_count()
533 sizeof(share->state.header) + in _ma_decrement_open_count()
547 void _ma_mark_file_crashed(MARIA_SHARE *share) in _ma_mark_file_crashed() argument
552 share->state.changed|= STATE_CRASHED; in _ma_mark_file_crashed()
553 mi_int2store(buff, share->state.changed); in _ma_mark_file_crashed()
559 (void) my_pwrite(share->kfile.file, buff, sizeof(buff), in _ma_mark_file_crashed()
560 sizeof(share->state.header) + in _ma_mark_file_crashed()
576 void _ma_set_fatal_error(MARIA_SHARE *share, int error) in _ma_set_fatal_error() argument
579 maria_mark_crashed_share(share); in _ma_set_fatal_error()
580 if (!(share->state.changed & STATE_CRASHED_PRINTED)) in _ma_set_fatal_error()
582 share->state.changed|= STATE_CRASHED_PRINTED; in _ma_set_fatal_error()
583 maria_print_error(share, error); in _ma_set_fatal_error()
599 my_bool _ma_set_uuid(MARIA_SHARE *share, my_bool reset_uuid) in _ma_set_uuid() argument
609 return (my_bool) my_pwrite(share->kfile.file, uuid, MY_UUID_SIZE, in _ma_set_uuid()
610 mi_uint2korr(share->state.header.base_pos), in _ma_set_uuid()