CUBRID Engine
latest
|
#include "config.h"
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <assert.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "disk_manager.h"
#include "porting.h"
#include "porting_inline.hpp"
#include "system_parameter.h"
#include "error_manager.h"
#include "language_support.h"
#include "intl_support.h"
#include "xserver_interface.h"
#include "file_io.h"
#include "page_buffer.h"
#include "log_append.hpp"
#include "log_manager.h"
#include "log_lsa.hpp"
#include "log_volids.hpp"
#include "critical_section.h"
#include "boot_sr.h"
#include "tz_support.h"
#include "db_date.h"
#include "bit.h"
#include "fault_injection.h"
#include "vacuum.h"
#include "dbtype.h"
#include "thread_daemon.hpp"
#include "thread_entry_task.hpp"
#include "thread_manager.hpp"
#include "double_write_buffer.h"
Go to the source code of this file.
Classes | |
struct | disk_volume_header |
struct | disk_recv_link_perm_volume |
struct | disk_recv_change_creation |
struct | disk_recv_data_volume_expand |
struct | disk_vol_header_context |
struct | disk_check_vol_info |
struct | disk_cache_volinfo |
struct | disk_extend_info |
struct | disk_perm_info |
struct | disk_temp_info |
struct | disk_cache |
struct | disk_stab_cursor |
struct | disk_cache_vol_reserve |
struct | disk_reserve_context |
Typedefs | |
typedef struct disk_volume_header | DISK_VOLUME_HEADER |
typedef struct disk_recv_link_perm_volume | DISK_RECV_LINK_PERM_VOLUME |
typedef struct disk_recv_change_creation | DISK_RECV_CHANGE_CREATION |
typedef struct disk_recv_data_volume_expand | DISK_RECV_DATA_VOLUME_EXPAND |
typedef struct disk_vol_header_context | DISK_VOL_HEADER_CONTEXT |
typedef struct disk_check_vol_info | DISK_CHECK_VOL_INFO |
typedef struct disk_cache_volinfo | DISK_CACHE_VOLINFO |
typedef struct disk_extend_info | DISK_EXTEND_INFO |
typedef struct disk_perm_info | DISK_PERM_PURPOSE_INFO |
typedef struct disk_temp_info | DISK_TEMP_PURPOSE_INFO |
typedef struct disk_cache | DISK_CACHE |
typedef UINT64 | DISK_STAB_UNIT |
typedef struct disk_stab_cursor | DISK_STAB_CURSOR |
typedef int(* | DISK_STAB_UNIT_FUNC) (THREAD_ENTRY *thread_p, DISK_STAB_CURSOR *cursor, bool *stop, void *args) |
typedef struct disk_cache_vol_reserve | DISK_CACHE_VOL_RESERVE |
typedef struct disk_reserve_context | DISK_RESERVE_CONTEXT |
Variables | |
static DISK_CACHE * | disk_Cache = NULL |
static DKNSECTS | disk_Temp_max_sects = -2 |
static bool | disk_Logging = false |
static cubthread::daemon * | disk_Auto_volume_expansion_daemon = NULL |
#define DISK_ALLOCTBL_SECTOR_BIT_OFFSET | ( | sect | ) | (((sect) % DISK_STAB_PAGE_BIT_COUNT) % DISK_STAB_UNIT_BIT_COUNT) |
Definition at line 254 of file disk_manager.c.
Referenced by disk_stab_cursor_set_at_sectid().
#define DISK_ALLOCTBL_SECTOR_PAGE_OFFSET | ( | sect | ) | ((sect) / DISK_STAB_PAGE_BIT_COUNT) |
Definition at line 250 of file disk_manager.c.
Referenced by disk_stab_cursor_set_at_sectid().
#define DISK_ALLOCTBL_SECTOR_UNIT_OFFSET | ( | sect | ) | (((sect) % DISK_STAB_PAGE_BIT_COUNT) / DISK_STAB_UNIT_BIT_COUNT) |
Definition at line 252 of file disk_manager.c.
Referenced by disk_stab_cursor_set_at_sectid().
#define disk_get_volheader | ( | ... | ) | disk_get_volheader_internal (__VA_ARGS__, ARG_FILE_LINE) |
Definition at line 467 of file disk_manager.c.
Referenced by disk_check(), disk_check_sectors_are_reserved_in_volume(), disk_check_volume(), disk_dump_volume_system_info(), disk_get_boot_db_charset(), disk_get_boot_hfid(), disk_get_checkpoint(), disk_get_creation_time(), disk_get_link(), disk_get_total_numsectors(), disk_is_page_sector_reserved_with_debug_crash(), disk_reserve_sectors_in_volume(), disk_set_checkpoint(), disk_set_creation(), disk_set_link(), disk_spacedb(), disk_unreserve_sectors_from_volume(), disk_volume_boot(), disk_volume_expand(), disk_volume_header_next_scan(), xdisk_get_fullname(), xdisk_get_purpose_and_space_info(), xdisk_get_purpose_and_sys_lastpage(), xdisk_get_remarks(), and xdisk_get_total_numpages().
#define disk_log | ( | func, | |
msg, | |||
... | |||
) |
Definition at line 309 of file disk_manager.c.
Referenced by disk_add_volume(), disk_cache_update_vol_free(), disk_check(), disk_check_volume(), disk_extend(), disk_manager_init(), disk_reserve_from_cache(), disk_reserve_from_cache_volume(), disk_reserve_sectors(), disk_reserve_sectors_in_volume(), disk_rv_redo_format(), disk_rv_reserve_sectors(), disk_rv_undo_format(), disk_rv_unreserve_sectors(), disk_rv_volhead_extend_redo(), disk_rv_volhead_extend_undo(), disk_stab_unit_check_reserved(), disk_stab_unit_reserve(), disk_stab_unit_unreserve(), disk_unreserve_ordered_sectors_without_csect(), disk_unreserve_sectors_from_volume(), and disk_volume_expand().
#define DISK_MIN_VOLUME_SECTS DISK_STAB_UNIT_BIT_COUNT |
Definition at line 297 of file disk_manager.c.
Referenced by disk_extend().
#define DISK_PRERESERVE_BUF_DEFAULT 16 |
Definition at line 275 of file disk_manager.c.
#define DISK_RESERVE_CONTEXT_AS_ARGS | ( | context | ) |
Definition at line 339 of file disk_manager.c.
Referenced by disk_reserve_from_cache_volume(), and disk_unreserve_ordered_sectors_without_csect().
#define DISK_RESERVE_CONTEXT_MSG |
Definition at line 334 of file disk_manager.c.
Referenced by disk_reserve_from_cache_volume(), and disk_unreserve_ordered_sectors_without_csect().
#define DISK_SAFE_OSDISK_FREE_SECTS (DISK_SAFE_OSDISK_FREE_SPACE / IO_SECTORSIZE) |
Definition at line 301 of file disk_manager.c.
#define DISK_SAFE_OSDISK_FREE_SPACE (64 * 1024 * 1024) |
Definition at line 300 of file disk_manager.c.
#define DISK_SECTS_ASSERT_ROUNDED | ( | nsects | ) | assert (nsects == DISK_SECTS_ROUND_DOWN (nsects)) |
Definition at line 258 of file disk_manager.c.
Referenced by disk_reserve_sectors_in_volume(), disk_stab_cursor_set_at_end(), and disk_verify_volume_header().
#define DISK_SECTS_ROUND_DOWN | ( | nsects | ) | ((nsects / DISK_STAB_UNIT_BIT_COUNT) * DISK_STAB_UNIT_BIT_COUNT) |
Definition at line 257 of file disk_manager.c.
Referenced by disk_check_sectors_are_reserved_in_volume(), disk_reserve_sectors_in_volume(), and disk_unreserve_sectors_from_volume().
#define DISK_SECTS_ROUND_UP | ( | nsects | ) | (CEIL_PTVDIV (nsects, DISK_STAB_UNIT_BIT_COUNT) * DISK_STAB_UNIT_BIT_COUNT) |
Definition at line 256 of file disk_manager.c.
Referenced by disk_add_volume(), disk_cache_init(), disk_extend(), disk_sectors_to_extend_npages(), and disk_volume_expand().
Definition at line 239 of file disk_manager.c.
Referenced by disk_reserve_sectors_in_volume().
#define DISK_STAB_NPAGES | ( | nsect_max | ) | (CEIL_PTVDIV (nsect_max, DISK_STAB_PAGE_BIT_COUNT)) |
Definition at line 260 of file disk_manager.c.
#define DISK_STAB_PAGE_BIT_COUNT ((int) (DISK_STAB_UNIT_BIT_COUNT * DISK_STAB_PAGE_UNITS_COUNT)) |
Definition at line 247 of file disk_manager.c.
Referenced by disk_check(), disk_check_volume(), disk_stab_cursor_check_valid(), disk_stab_init(), disk_verify_volume_header(), and disk_volume_header_set_stab().
#define DISK_STAB_PAGE_UNITS_COUNT ((int) (DB_PAGESIZE / DISK_STAB_UNIT_SIZE_OF)) |
Definition at line 245 of file disk_manager.c.
Referenced by disk_rv_reserve_sectors(), disk_rv_unreserve_sectors(), disk_stab_cursor_check_valid(), and disk_stab_iterate_units().
#define DISK_STAB_UNIT_BIT_COUNT ((int) (DISK_STAB_UNIT_SIZE_OF * CHAR_BIT)) |
Definition at line 243 of file disk_manager.c.
Referenced by disk_check(), disk_rv_redo_init_map(), disk_stab_cursor_check_valid(), disk_stab_cursor_get_bit_index_in_page(), disk_stab_dump_unit(), disk_stab_iterate_units(), disk_stab_set_bits_contiguous(), disk_stab_unit_check_reserved(), disk_stab_unit_reserve(), and disk_stab_unit_unreserve().
#define DISK_STAB_UNIT_SIZE_OF sizeof (DISK_STAB_UNIT) |
Definition at line 222 of file disk_manager.c.
Referenced by disk_check(), and disk_stab_cursor_check_valid().
#define DISK_SYS_NPAGE_SIZE | ( | nsect_max | ) | (1 + DISK_STAB_NPAGES (nsect_max)) |
Definition at line 343 of file disk_manager.c.
#define DISK_SYS_NSECT_SIZE | ( | nsect_max | ) | (CEIL_PTVDIV (DISK_SYS_NPAGE_SIZE (nsect_max), DISK_SECTOR_NPAGES)) |
Definition at line 344 of file disk_manager.c.
Referenced by disk_extend().
#define DISK_VOLHEADER_AS_ARGS | ( | arg_volh | ) |
Definition at line 324 of file disk_manager.c.
Referenced by disk_volume_expand().
#define DISK_VOLHEADER_MSG |
Definition at line 314 of file disk_manager.c.
Referenced by disk_volume_expand().
#define fault_inject_random_crash | ( | ) | if (vol_purpose == DB_PERMANENT_DATA_PURPOSE) FI_TEST (thread_p, FI_TEST_DISK_MANAGER_VOLUME_ADD, 0) |
Referenced by disk_format().
typedef struct disk_cache DISK_CACHE |
Definition at line 190 of file disk_manager.c.
typedef struct disk_cache_vol_reserve DISK_CACHE_VOL_RESERVE |
Definition at line 269 of file disk_manager.c.
typedef struct disk_cache_volinfo DISK_CACHE_VOLINFO |
Definition at line 151 of file disk_manager.c.
typedef struct disk_check_vol_info DISK_CHECK_VOL_INFO |
Definition at line 140 of file disk_manager.c.
typedef struct disk_extend_info DISK_EXTEND_INFO |
Definition at line 158 of file disk_manager.c.
typedef struct disk_perm_info DISK_PERM_PURPOSE_INFO |
Definition at line 176 of file disk_manager.c.
typedef struct disk_recv_change_creation DISK_RECV_CHANGE_CREATION |
Definition at line 117 of file disk_manager.c.
typedef struct disk_recv_data_volume_expand DISK_RECV_DATA_VOLUME_EXPAND |
Definition at line 126 of file disk_manager.c.
typedef struct disk_recv_link_perm_volume DISK_RECV_LINK_PERM_VOLUME |
Definition at line 110 of file disk_manager.c.
typedef struct disk_reserve_context DISK_RESERVE_CONTEXT |
Definition at line 277 of file disk_manager.c.
typedef struct disk_stab_cursor DISK_STAB_CURSOR |
Definition at line 225 of file disk_manager.c.
typedef UINT64 DISK_STAB_UNIT |
Definition at line 221 of file disk_manager.c.
typedef int(* DISK_STAB_UNIT_FUNC) (THREAD_ENTRY *thread_p, DISK_STAB_CURSOR *cursor, bool *stop, void *args) |
Definition at line 263 of file disk_manager.c.
typedef struct disk_temp_info DISK_TEMP_PURPOSE_INFO |
Definition at line 182 of file disk_manager.c.
typedef struct disk_vol_header_context DISK_VOL_HEADER_CONTEXT |
Definition at line 134 of file disk_manager.c.
typedef struct disk_volume_header DISK_VOLUME_HEADER |
Definition at line 72 of file disk_manager.c.
|
static |
Definition at line 2096 of file disk_manager.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, boot_db_full_name(), boot_dbparm_save_volume(), boot_get_new_volume_name_and_id(), dbdef_vol_ext_info::comments, DB_PERMANENT_DATA_PURPOSE, DB_PERMANENT_VOLTYPE, DB_TEMPORARY_VOLTYPE, disk_can_overwrite_data_volume(), disk_format(), disk_log, disk_purpose_to_string(), DISK_SECTS_NPAGES, DISK_SECTS_ROUND_UP, DISK_SECTS_SIZE, disk_type_to_string(), disk_unformat(), ER_BO_CANNOT_CREATE_LINK, ER_BO_MAXNUM_VOLS_HAS_BEEN_EXCEEDED, ER_BO_VOLUME_EXISTS, ER_ERROR_SEVERITY, ER_IO_FORMAT_OUT_OF_SPACE, er_set(), fileio_get_base_file_name(), fileio_get_directory_path(), fileio_get_number_of_partition_free_sectors(), fileio_is_volume_exist(), fileio_make_volume_ext_name(), IO_PAGESIZE, LOG_MAX_DBVOLID, log_sysop_abort(), log_sysop_commit(), log_sysop_start(), logpb_add_volume(), dbdef_vol_ext_info::name, NO_ERROR, disk_volume_header::nsect_max, dbdef_vol_ext_info::nsect_max, dbdef_vol_ext_info::nsect_total, NULL, NULL_VOLID, disk_cache::nvols_perm, disk_cache::nvols_temp, dbdef_vol_ext_info::overwrite, dbdef_vol_ext_info::path, disk_cache_volinfo::purpose, dbdef_vol_ext_info::purpose, VOL_MAX_NSECTS, disk_volume_header::volid, disk_cache::vols, and dbdef_vol_ext_info::voltype.
Referenced by disk_add_volume_extension(), and disk_extend().
int disk_add_volume_extension | ( | THREAD_ENTRY * | thread_p, |
DB_VOLPURPOSE | purpose, | ||
DKNPAGES | npages, | ||
const char * | path, | ||
const char * | name, | ||
const char * | comments, | ||
int | max_write_size_in_sec, | ||
bool | overwrite, | ||
VOLID * | volid_out | ||
) |
Definition at line 2296 of file disk_manager.c.
References assert, ASSERT_ERROR, dbdef_vol_ext_info::comments, CSECT_DISK_CHECK, csect_enter_as_reader, csect_exit, DB_PERMANENT_DATA_PURPOSE, DB_PERMANENT_VOLTYPE, disk_add_volume(), disk_cache_lock_reserve_for_purpose(), disk_cache_unlock_reserve_for_purpose(), disk_cache_update_vol_free(), disk_is_valid_volid(), disk_lock_extend(), disk_sectors_to_extend_npages(), disk_unlock_extend(), disk_perm_info::extend_info, INF_WAIT, dbdef_vol_ext_info::max_npages, dbdef_vol_ext_info::max_writesize_in_sec, dbdef_vol_ext_info::name, NO_ERROR, disk_cache_volinfo::nsect_free, disk_extend_info::nsect_max, dbdef_vol_ext_info::nsect_max, disk_temp_info::nsect_perm_total, disk_extend_info::nsect_total, dbdef_vol_ext_info::nsect_total, NULL, NULL_VOLID, disk_cache::nvols_perm, dbdef_vol_ext_info::overwrite, dbdef_vol_ext_info::path, disk_cache::perm_purpose_info, disk_volume_header::purpose, disk_cache_volinfo::purpose, dbdef_vol_ext_info::purpose, disk_cache::temp_purpose_info, disk_cache::vols, and dbdef_vol_ext_info::voltype.
Referenced by boot_parse_add_volume_extensions(), and xboot_add_volume_extension().
|
static |
Referenced by disk_manager_final(), and disk_volume_boot().
|
static |
Referenced by disk_manager_init(), and disk_volume_boot().
|
static |
Definition at line 2655 of file disk_manager.c.
References assert, disk_perm_info::extend_info, disk_temp_info::extend_info, free_and_init, disk_cache::mutex_extend, disk_extend_info::mutex_reserve, NULL, disk_cache::owner_extend, disk_extend_info::owner_reserve, disk_cache::perm_purpose_info, pthread_mutex_destroy, and disk_cache::temp_purpose_info.
Referenced by disk_manager_final(), and disk_manager_init().
STATIC_INLINE void disk_cache_free_reserved | ( | DISK_RESERVE_CONTEXT * | context | ) |
Definition at line 2695 of file disk_manager.c.
References disk_reserve_context::cache_vol_reserve, disk_cache_lock_reserve_for_purpose(), disk_cache_unlock_reserve_for_purpose(), disk_cache_update_vol_free(), disk_reserve_context::n_cache_vol_reserve, disk_cache_vol_reserve::nsect, disk_reserve_context::purpose, STATIC_INLINE, and disk_cache_vol_reserve::volid.
Referenced by disk_reserve_sectors().
|
static |
Definition at line 2594 of file disk_manager.c.
References ARG_FILE_LINE, assert, DB_PERMANENT_VOLTYPE, DB_TEMPORARY_VOLTYPE, DISK_SECTS_ROUND_UP, DISK_UNKNOWN_PURPOSE, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), disk_perm_info::extend_info, disk_temp_info::extend_info, i, IO_SECTORSIZE, LOG_MAX_DBVOLID, disk_cache::mutex_extend, disk_extend_info::mutex_reserve, NO_ERROR, disk_cache_volinfo::nsect_free, disk_extend_info::nsect_free, disk_extend_info::nsect_intention, disk_extend_info::nsect_max, disk_temp_info::nsect_perm_free, disk_temp_info::nsect_perm_total, disk_extend_info::nsect_total, disk_extend_info::nsect_vol_max, NULL, NULL_VOLID, disk_cache::nvols_perm, disk_cache::nvols_temp, disk_cache::owner_extend, disk_extend_info::owner_reserve, disk_cache::perm_purpose_info, prm_get_bigint_value(), PRM_ID_DB_VOLUME_SIZE, pthread_mutex_init, disk_cache_volinfo::purpose, disk_cache::temp_purpose_info, disk_extend_info::volid_extend, disk_cache::vols, and disk_extend_info::voltype.
Referenced by disk_manager_init().
|
static |
Definition at line 2681 of file disk_manager.c.
References assert, disk_cache_load_volume(), fileio_map_mounted(), NULL, and STATIC_INLINE.
Referenced by disk_manager_init().
|
static |
Definition at line 2534 of file disk_manager.c.
References assert, ASSERT_ERROR, DB_PERMANENT_DATA_PURPOSE, DB_PERMANENT_VOLTYPE, disk_volume_boot(), DISK_VOLUME_SPACE_INFO_INITIALIZER, disk_perm_info::extend_info, disk_volume_space_info::n_free_sects, disk_volume_space_info::n_max_sects, disk_volume_space_info::n_total_sects, NO_ERROR, disk_cache_volinfo::nsect_free, disk_extend_info::nsect_free, disk_extend_info::nsect_max, disk_temp_info::nsect_perm_free, disk_temp_info::nsect_perm_total, disk_extend_info::nsect_total, NULL_VOLID, disk_cache::nvols_perm, disk_cache::perm_purpose_info, disk_cache_volinfo::purpose, disk_cache::temp_purpose_info, disk_volume_header::volid, disk_extend_info::volid_extend, and disk_cache::vols.
Referenced by disk_cache_load_all_volumes().
STATIC_INLINE void disk_cache_lock_reserve | ( | DISK_EXTEND_INFO * | expand_info | ) |
Definition at line 2842 of file disk_manager.c.
References assert, disk_extend_info::mutex_reserve, disk_extend_info::owner_reserve, pthread_mutex_lock, STATIC_INLINE, and thread_get_current_entry_index().
Referenced by disk_cache_lock_reserve_for_purpose(), disk_extend(), and disk_reserve_from_cache().
STATIC_INLINE void disk_cache_lock_reserve_for_purpose | ( | DB_VOLPURPOSE | purpose | ) |
Definition at line 2804 of file disk_manager.c.
References DB_PERMANENT_DATA_PURPOSE, disk_cache_lock_reserve(), disk_perm_info::extend_info, disk_temp_info::extend_info, disk_cache::perm_purpose_info, STATIC_INLINE, and disk_cache::temp_purpose_info.
Referenced by disk_add_volume_extension(), disk_cache_free_reserved(), disk_check_volume(), disk_reserve_from_cache(), disk_rv_redo_format(), disk_rv_reserve_sectors(), disk_rv_undo_format(), disk_rv_unreserve_sectors(), disk_rv_volhead_extend_redo(), disk_rv_volhead_extend_undo(), and disk_stab_unit_unreserve().
STATIC_INLINE void disk_cache_unlock_reserve | ( | DISK_EXTEND_INFO * | expand_info | ) |
Definition at line 2868 of file disk_manager.c.
References assert, disk_extend_info::mutex_reserve, disk_extend_info::owner_reserve, pthread_mutex_unlock, and thread_get_current_entry_index().
Referenced by disk_cache_unlock_reserve_for_purpose(), disk_extend(), and disk_reserve_from_cache().
STATIC_INLINE void disk_cache_unlock_reserve_for_purpose | ( | DB_VOLPURPOSE | purpose | ) |
Definition at line 2823 of file disk_manager.c.
References DB_PERMANENT_DATA_PURPOSE, disk_cache_unlock_reserve(), disk_perm_info::extend_info, disk_temp_info::extend_info, disk_cache::perm_purpose_info, STATIC_INLINE, and disk_cache::temp_purpose_info.
Referenced by disk_add_volume_extension(), disk_cache_free_reserved(), disk_check_volume(), disk_reserve_from_cache(), disk_rv_redo_format(), disk_rv_reserve_sectors(), disk_rv_undo_format(), disk_rv_unreserve_sectors(), disk_rv_volhead_extend_redo(), disk_rv_volhead_extend_undo(), and disk_stab_unit_unreserve().
STATIC_INLINE void disk_cache_update_vol_free | ( | VOLID | volid, |
DKNSECTS | delta_free | ||
) |
Definition at line 2715 of file disk_manager.c.
References assert, DB_PERMANENT_DATA_PURPOSE, DB_PERMANENT_VOLTYPE, disk_check_own_reserve_for_purpose(), disk_get_voltype(), disk_log, disk_perm_info::extend_info, disk_temp_info::extend_info, disk_cache_volinfo::nsect_free, disk_extend_info::nsect_free, disk_temp_info::nsect_perm_free, disk_cache::perm_purpose_info, disk_cache_volinfo::purpose, disk_cache::temp_purpose_info, disk_volume_header::volid, and disk_cache::vols.
Referenced by disk_add_volume_extension(), disk_cache_free_reserved(), disk_check_volume(), disk_extend(), disk_reserve_from_cache_volume(), disk_rv_redo_format(), disk_rv_reserve_sectors(), disk_rv_undo_format(), disk_rv_unreserve_sectors(), disk_rv_volhead_extend_redo(), disk_rv_volhead_extend_undo(), and disk_stab_unit_unreserve().
|
static |
Definition at line 6120 of file disk_manager.c.
References assert, CUBRID_MAGIC_DATABASE_VOLUME, CUBRID_MAGIC_MAX_LENGTH, disk_volume_header::db_creation, log_header::db_creation, ER_FAILED, fileio_close(), fileio_find_volume_descriptor_with_label(), fileio_open(), fileio_read(), log_global::hdr, IO_MAX_PAGE_SIZE, log_Gl, disk_volume_header::magic, MAX_ALIGNMENT, NO_ERROR, NULL, NULL_VOLDES, PTR_ALIGN, and STATIC_INLINE.
Referenced by disk_add_volume().
DISK_ISVALID disk_check | ( | THREAD_ENTRY * | thread_p, |
bool | repair | ||
) |
Definition at line 6348 of file disk_manager.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, assert_release, bit64_clear(), bit64_is_set(), bit64_set_trailing_bits(), CSECT_DISK_CHECK, csect_enter, csect_exit, DB_PAGESIZE, DB_PERMANENT_DATA_PURPOSE, DB_TEMPORARY_DATA_PURPOSE, disk_check_volume(), DISK_ERROR, disk_get_volheader, DISK_INVALID, disk_log, DISK_STAB_PAGE_BIT_COUNT, DISK_STAB_UNIT_BIT_COUNT, DISK_STAB_UNIT_SIZE_OF, DISK_VALID, ER_ERROR_SEVERITY, ER_GENERIC_ERROR, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), disk_perm_info::extend_info, disk_temp_info::extend_info, free_and_init, INF_WAIT, LOG_MAX_DBVOLID, disk_volmap_clone::map, NO_ERROR, disk_cache_volinfo::nsect_free, disk_extend_info::nsect_free, disk_temp_info::nsect_perm_free, disk_volume_header::nsect_total, NULL, disk_cache::nvols_perm, disk_cache::nvols_temp, OLD_PAGE, vpid::pageid, disk_cache::perm_purpose_info, pgbuf_fix, PGBUF_LATCH_READ, PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix, pgbuf_unfix_and_init, disk_cache_volinfo::purpose, vsid::sectid, SECTOR_FROM_PAGEID, disk_volmap_clone::size_map, disk_volume_header::stab_first_page, disk_volume_header::stab_npages, disk_volume_header::sys_lastpage, disk_cache::temp_purpose_info, disk_volume_header::volid, vpid::volid, vsid::volid, disk_cache::vols, xboot_find_last_permanent(), xboot_find_last_temp(), xboot_find_number_permanent_volumes(), and xboot_find_number_temp_volumes().
Referenced by disk_reserve_sectors(), and xboot_check_db_consistency().
STATIC_INLINE void disk_check_own_reserve_for_purpose | ( | DB_VOLPURPOSE | purpose | ) |
Definition at line 5050 of file disk_manager.c.
References assert, DB_PERMANENT_DATA_PURPOSE, disk_perm_info::extend_info, disk_temp_info::extend_info, disk_extend_info::owner_reserve, disk_cache::perm_purpose_info, disk_cache::temp_purpose_info, and thread_get_current_entry_index().
Referenced by disk_cache_update_vol_free(), and disk_reserve_from_cache_volume().
DISK_ISVALID disk_check_sectors_are_reserved | ( | THREAD_ENTRY * | thread_p, |
VSID * | vsids, | ||
int | nsects | ||
) |
Definition at line 5067 of file disk_manager.c.
References assert, ASSERT_ERROR, disk_reserve_context::cache_vol_reserve, disk_check_sectors_are_reserved_in_volume(), DISK_ERROR, DISK_INVALID, DISK_UNKNOWN_PURPOSE, DISK_VALID, disk_reserve_context::n_cache_vol_reserve, disk_cache_vol_reserve::nsect, disk_reserve_context::nsect_total, disk_reserve_context::nsects_lastvol_remaining, NULL_VOLID, disk_reserve_context::purpose, disk_volume_header::volid, disk_cache_vol_reserve::volid, vsid::volid, and disk_reserve_context::vsidp.
Referenced by file_table_check().
|
static |
Definition at line 5129 of file disk_manager.c.
References assert, ASSERT_ERROR, DISK_ERROR, disk_get_volheader, DISK_INVALID, DISK_SECTS_ROUND_DOWN, disk_stab_cursor_set_at_end(), disk_stab_cursor_set_at_sectid(), disk_stab_iterate_units(), disk_stab_unit_check_reserved(), DISK_VALID, ER_FAILED, NO_ERROR, disk_reserve_context::nsects_lastvol_remaining, NULL, PGBUF_LATCH_READ, pgbuf_unfix, vsid::sectid, and disk_reserve_context::vsidp.
Referenced by disk_check_sectors_are_reserved().
|
static |
Definition at line 6231 of file disk_manager.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, assert_release, CEIL_PTVDIV, CSECT_DISK_CHECK, csect_enter, csect_exit, DB_PERMANENT_DATA_PURPOSE, diff, disk_cache_lock_reserve_for_purpose(), disk_cache_unlock_reserve_for_purpose(), disk_cache_update_vol_free(), DISK_ERROR, disk_get_volheader, DISK_INVALID, disk_log, DISK_SECTOR_NPAGES, disk_stab_count_free(), disk_stab_iterate_units_all(), DISK_STAB_PAGE_BIT_COUNT, DISK_VALID, DISK_VOLHEADER_PAGE, ER_DISK_INCONSISTENT_NFREE_SECTS, ER_DISK_INCONSISTENT_VOL_HEADER, ER_ERROR_SEVERITY, ER_GENERIC_ERROR, er_set(), disk_perm_info::extend_info, fileio_get_volume_label(), INF_WAIT, NO_ERROR, disk_cache_volinfo::nsect_free, disk_volume_header::nsect_max, disk_volume_header::nsect_total, NULL, PEEK, disk_cache::perm_purpose_info, PGBUF_LATCH_READ, pgbuf_unfix_and_init, disk_volume_header::purpose, disk_cache_volinfo::purpose, disk_volume_header::sect_npgs, disk_volume_header::stab_first_page, disk_volume_header::stab_npages, disk_volume_header::sys_lastpage, disk_volume_header::volid, disk_extend_info::volid_extend, and disk_cache::vols.
Referenced by disk_check().
|
static |
Definition at line 6100 of file disk_manager.c.
References disk_check_vol_info::exists, and disk_check_vol_info::volid.
Referenced by xdisk_is_volume_exist().
Definition at line 6071 of file disk_manager.c.
References vsid::sectid, and vsid::volid.
Referenced by disk_reserve_sectors(), file_check_vpid(), file_create(), file_extdata_collect_ftab_pages(), file_header_sanity_check(), file_perm_dealloc(), file_perm_expand(), file_table_add_full_sector(), file_table_check_page_is_in_sectors(), file_table_collect_all_vsids(), and file_temp_reset_user_pages().
STATIC_INLINE bool disk_compatible_type_and_purpose | ( | DB_VOLTYPE | type, |
DB_VOLPURPOSE | purpose | ||
) |
Definition at line 6214 of file disk_manager.c.
References DB_PERMANENT_VOLTYPE, and DB_TEMPORARY_DATA_PURPOSE.
Referenced by disk_reserve_from_cache_vols().
int disk_dump_all | ( | THREAD_ENTRY * | thread_p, |
FILE * | fp | ||
) |
Definition at line 5853 of file disk_manager.c.
References disk_dump_goodvol_all(), ER_FAILED, fileio_map_mounted(), NO_ERROR, and NULL.
Referenced by diagdb().
|
static |
Definition at line 5869 of file disk_manager.c.
References disk_dump_volume_system_info(), and STATIC_INLINE.
Referenced by disk_dump_all().
|
static |
Definition at line 5820 of file disk_manager.c.
References ASSERT_ERROR, disk_get_volheader, disk_stab_dump(), disk_vhdr_dump(), NO_ERROR, NULL, PGBUF_LATCH_READ, and pgbuf_unfix_and_init.
Referenced by disk_dump_goodvol_all().
|
static |
Definition at line 1618 of file disk_manager.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, dbdef_vol_ext_info::comments, DB_PERMANENT_DATA_PURPOSE, DB_PERMANENT_VOLTYPE, DB_TEMPORARY_DATA_PURPOSE, DB_TEMPORARY_VOLTYPE, disk_add_volume(), disk_cache_lock_reserve(), disk_cache_unlock_reserve(), disk_cache_update_vol_free(), disk_is_valid_volid(), disk_log, DISK_MIN_VOLUME_SECTS, disk_reserve_from_cache_volume(), DISK_SECTS_ROUND_UP, DISK_SYS_NSECT_SIZE, disk_type_to_string(), disk_volume_expand(), ER_ERROR_SEVERITY, ER_INTERRUPTED, er_set(), LOG_MAX_DBVOLID, log_sysop_abort(), log_sysop_commit(), log_sysop_start(), logtb_get_check_interrupt(), logtb_is_interrupted(), logtb_set_check_interrupt(), max, dbdef_vol_ext_info::max_writesize_in_sec, disk_reserve_context::n_cache_reserve_remaining, dbdef_vol_ext_info::name, NO_ERROR, disk_cache_volinfo::nsect_free, disk_extend_info::nsect_free, disk_extend_info::nsect_intention, disk_extend_info::nsect_max, dbdef_vol_ext_info::nsect_max, disk_extend_info::nsect_total, dbdef_vol_ext_info::nsect_total, disk_extend_info::nsect_vol_max, NULL, NULL_VOLID, disk_cache::nvols_perm, disk_cache::nvols_temp, dbdef_vol_ext_info::overwrite, disk_cache::owner_extend, dbdef_vol_ext_info::path, disk_cache_volinfo::purpose, dbdef_vol_ext_info::purpose, thread_get_entry_index(), tsc_getticks(), disk_extend_info::volid_extend, disk_cache::vols, disk_extend_info::voltype, and dbdef_vol_ext_info::voltype.
Referenced by disk_reserve_from_cache().
|
static |
Definition at line 510 of file disk_manager.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, disk_volume_header::boot_hfid, disk_volume_header::chkpt_lsa, dbdef_vol_ext_info::comments, CUBRID_MAGIC_DATABASE_VOLUME, CUBRID_MAGIC_MAX_LENGTH, disk_volume_header::db_charset, disk_volume_header::db_creation, DB_MAX_PATH_LENGTH, DB_PAGESIZE, DB_PERMANENT_DATA_PURPOSE, DB_PERMANENT_VOLTYPE, DB_TEMPORARY_DATA_PURPOSE, DB_TEMPORARY_VOLTYPE, DISK_FLUSH, DISK_SECTOR_NPAGES, DISK_SECTS_NPAGES, disk_set_link(), disk_stab_init(), disk_unformat(), disk_verify_volume_header(), disk_vhdr_length_of_varfields(), disk_vhdr_set_next_vol_fullname(), disk_vhdr_set_vol_fullname(), disk_vhdr_set_vol_remarks(), DISK_VOLHEADER_PAGE, DISK_VOLPURPOSE, disk_volume_header_set_stab(), disk_volume_header::dummy1, disk_volume_header::dummy2, dwb_flush_force(), ER_BO_FULL_DATABASE_NAME_IS_TOO_LONG, ER_DISK_UNKNOWN_PURPOSE, ER_ERROR_SEVERITY, ER_FATAL_ERROR_SEVERITY, ER_IO_FORMAT_BAD_NPAGES, er_set(), fault_inject_random_crash, vfid::fileid, fileio_find_previous_perm_volume(), fileio_format(), fileio_reset_volume(), FILEIO_SYNC_ALSO_FLUSH_DWB, fileio_synchronize(), disk_volume_header::hint_allocsect, hfid::hpgid, IO_PAGESIZE, disk_volume_header::iopagesize, lang_charset(), log_append_dboutside_redo(), log_append_redo_data(), log_append_undo_data(), LOG_DBFIRST_VOLID, log_get_db_start_parameters(), logpb_force_flush_pages(), disk_volume_header::magic, dbdef_vol_ext_info::max_writesize_in_sec, dbdef_vol_ext_info::name, NEW_PAGE, disk_volume_header::next_volid, NO_ERROR, disk_volume_header::nsect_max, dbdef_vol_ext_info::nsect_max, disk_volume_header::nsect_total, dbdef_vol_ext_info::nsect_total, NULL, NULL_PAGEID, NULL_SECTID, NULL_VOLDES, NULL_VOLID, log_data_addr::offset, disk_volume_header::offset_to_next_vol_fullname, disk_volume_header::offset_to_vol_fullname, disk_volume_header::offset_to_vol_remarks, OLD_PAGE, PAGE_VOLHEADER, vpid::pageid, pgbuf_fix, pgbuf_flush_all(), pgbuf_invalidate_all, PGBUF_LATCH_WRITE, pgbuf_set_dirty_and_free, pgbuf_set_lsa_as_temporary(), pgbuf_set_page_ptype(), PGBUF_TEMP_LSA, PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix, pgbuf_unfix_and_init, log_data_addr::pgptr, disk_volume_header::purpose, dbdef_vol_ext_info::purpose, disk_volume_header::reserved0, disk_volume_header::reserved1, disk_volume_header::reserved2, disk_volume_header::reserved3, RVDK_FORMAT, RVDK_NEWVOL, disk_volume_header::sect_npgs, SECTOR_FROM_PAGEID, strlen, disk_volume_header::sys_lastpage, disk_volume_header::type, disk_volume_header::var_fields, log_data_addr::vfid, hfid::vfid, disk_volume_header::volid, vpid::volid, vfid::volid, and dbdef_vol_ext_info::voltype.
Referenced by disk_add_volume(), and disk_format_first_volume().
int disk_format_first_volume | ( | THREAD_ENTRY * | thread_p, |
const char * | full_dbname, | ||
const char * | dbcomments, | ||
DKNPAGES | npages | ||
) |
Definition at line 5002 of file disk_manager.c.
References ASSERT_ERROR, dbdef_vol_ext_info::comments, DB_PERMANENT_DATA_PURPOSE, DB_PERMANENT_VOLTYPE, disk_format(), disk_manager_init(), disk_sectors_to_extend_npages(), disk_perm_info::extend_info, LOG_DBFIRST_VOLID, dbdef_vol_ext_info::max_writesize_in_sec, dbdef_vol_ext_info::name, NO_ERROR, disk_cache_volinfo::nsect_free, disk_extend_info::nsect_free, disk_extend_info::nsect_max, dbdef_vol_ext_info::nsect_max, disk_extend_info::nsect_total, dbdef_vol_ext_info::nsect_total, disk_cache::nvols_perm, dbdef_vol_ext_info::overwrite, disk_cache::perm_purpose_info, disk_cache_volinfo::purpose, dbdef_vol_ext_info::purpose, STATIC_INLINE, disk_cache::vols, and dbdef_vol_ext_info::voltype.
Referenced by boot_create_all_volumes().
int disk_get_boot_db_charset | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid, | ||
INTL_CODESET * | db_charset | ||
) |
Definition at line 5788 of file disk_manager.c.
References assert, ASSERT_ERROR, disk_volume_header::db_charset, disk_get_volheader, NO_ERROR, NULL, PGBUF_LATCH_READ, and pgbuf_unfix_and_init.
Referenced by boot_get_db_charset_from_header().
HFID* disk_get_boot_hfid | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid, | ||
HFID * | hfid | ||
) |
Definition at line 1130 of file disk_manager.c.
References ASSERT_ERROR, disk_volume_header::boot_hfid, disk_get_volheader, disk_verify_volume_header(), HFID_COPY, HFID_IS_NULL, NO_ERROR, NULL, PGBUF_LATCH_READ, and pgbuf_unfix_and_init.
Referenced by boot_remove_all_volumes(), boot_restart_server(), and xboot_emergency_patch().
int disk_get_checkpoint | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid, | ||
LOG_LSA * | vol_lsa | ||
) |
Definition at line 5458 of file disk_manager.c.
References ASSERT_ERROR, disk_volume_header::chkpt_lsa, disk_get_volheader, disk_verify_volume_header(), NO_ERROR, NULL, log_lsa::offset, log_lsa::pageid, PGBUF_LATCH_READ, and pgbuf_unfix_and_init.
Referenced by log_rv_find_checkpoint().
int disk_get_creation_time | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid, | ||
INT64 * | db_creation | ||
) |
Definition at line 5488 of file disk_manager.c.
References ASSERT_ERROR, disk_volume_header::db_creation, disk_get_volheader, disk_verify_volume_header(), DISK_VOLPURPOSE, NO_ERROR, NULL, PGBUF_LATCH_READ, and pgbuf_unfix_and_init.
Referenced by log_recovery_notpartof_volumes(), log_recovery_resetlog(), log_recreate(), and log_verify_dbcreation().
char* disk_get_link | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid, | ||
INT16 * | next_volid, | ||
char * | next_volext_fullname | ||
) |
Definition at line 1165 of file disk_manager.c.
References assert, ASSERT_ERROR, DB_MAX_PATH_LENGTH, disk_get_volheader, disk_verify_volume_header(), disk_vhdr_get_next_vol_fullname(), disk_volume_header::next_volid, NO_ERROR, NULL, PGBUF_LATCH_READ, and pgbuf_unfix_and_init.
Referenced by boot_check_permanent_volumes(), boot_find_rest_permanent_volumes(), and logpb_recreate_volume_info().
INT32 disk_get_total_numsectors | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid | ||
) |
Definition at line 5692 of file disk_manager.c.
References ASSERT_ERROR, disk_get_volheader, NO_ERROR, disk_volume_header::nsect_total, NULL, PGBUF_LATCH_READ, and pgbuf_unfix_and_init.
STATIC_INLINE int disk_get_volheader_internal | ( | THREAD_ENTRY * | thread_p, |
VOLID | volid, | ||
PGBUF_LATCH_MODE | latch_mode, | ||
PAGE_PTR * | page_volheader_out, | ||
DISK_VOLUME_HEADER ** | volheader_out, | ||
const char * | file, | ||
int | line | ||
) |
Definition at line 3183 of file disk_manager.c.
References ASSERT_ERROR_AND_SET, disk_verify_volume_header(), DISK_VOLHEADER_PAGE, NO_ERROR, NULL, OLD_PAGE, vpid::pageid, pgbuf_fix, PGBUF_UNCONDITIONAL_LATCH, STATIC_INLINE, disk_volume_header::volid, and vpid::volid.
STATIC_INLINE DB_VOLPURPOSE disk_get_volpurpose | ( | VOLID | volid | ) |
Definition at line 5895 of file disk_manager.c.
References assert, disk_is_valid_volid(), LOG_DBFIRST_VOLID, NULL, disk_cache_volinfo::purpose, STATIC_INLINE, disk_volume_header::volid, and disk_cache::vols.
Referenced by disk_rv_reserve_sectors(), disk_rv_unreserve_sectors(), and xdisk_get_purpose().
STATIC_INLINE DB_VOLTYPE disk_get_voltype | ( | VOLID | volid | ) |
Definition at line 5910 of file disk_manager.c.
References assert, DB_PERMANENT_VOLTYPE, DB_TEMPORARY_VOLTYPE, disk_is_valid_volid(), NULL, and disk_cache::nvols_perm.
Referenced by disk_cache_update_vol_free().
DISK_ISVALID disk_is_page_sector_reserved | ( | THREAD_ENTRY * | thread_p, |
VOLID | volid, | ||
PAGEID | pageid | ||
) |
Definition at line 4100 of file disk_manager.c.
References disk_is_page_sector_reserved_with_debug_crash().
Referenced by btree_leaf_record_change_overflow_link(), btree_rv_redo_global_unique_stats_commit(), btree_rv_undo_global_unique_stats_commit(), heap_reuse(), log_rv_redo_fix_page(), and pgbuf_fix_if_not_deallocated_with_caller().
DISK_ISVALID disk_is_page_sector_reserved_with_debug_crash | ( | THREAD_ENTRY * | thread_p, |
VOLID | volid, | ||
PAGEID | pageid, | ||
bool | debug_crash | ||
) |
Definition at line 4115 of file disk_manager.c.
References assert, ASSERT_ERROR, DISK_ERROR, disk_get_volheader, DISK_INVALID, disk_is_sector_reserved(), DISK_SECTS_NPAGES, DISK_VALID, DISK_VOLHEADER_PAGE, fileio_get_volume_descriptor(), LK_INFINITE_WAIT, logtb_set_check_interrupt(), NO_ERROR, disk_volume_header::nsect_total, NULL, NULL_VOLDES, PGBUF_LATCH_READ, pgbuf_unfix, SECTOR_FROM_PAGEID, disk_volume_header::sys_lastpage, and xlogtb_reset_wait_msecs().
Referenced by disk_is_page_sector_reserved(), locator_defence_drop_class_name_entry(), locator_drop_class_name_entry(), and pgbuf_is_valid_page().
|
static |
Definition at line 4186 of file disk_manager.c.
References assert, ASSERT_ERROR, DISK_ERROR, DISK_INVALID, disk_stab_cursor_fix(), disk_stab_cursor_is_bit_set(), disk_stab_cursor_set_at_sectid(), disk_stab_cursor_unfix(), DISK_VALID, NO_ERROR, and PGBUF_LATCH_READ.
Referenced by disk_is_page_sector_reserved_with_debug_crash().
STATIC_INLINE bool disk_is_valid_volid | ( | VOLID | volid | ) |
Definition at line 5883 of file disk_manager.c.
References LOG_MAX_DBVOLID, disk_cache::nvols_perm, disk_cache::nvols_temp, and STATIC_INLINE.
Referenced by disk_add_volume_extension(), disk_extend(), disk_get_volpurpose(), disk_get_voltype(), and xdisk_get_purpose().
void disk_lock_extend | ( | void | ) |
Definition at line 2758 of file disk_manager.c.
References assert, disk_perm_info::extend_info, disk_temp_info::extend_info, disk_cache::mutex_extend, disk_cache::owner_extend, disk_extend_info::owner_reserve, disk_cache::perm_purpose_info, pthread_mutex_lock, disk_cache::temp_purpose_info, and thread_get_current_entry_index().
Referenced by boot_find_next_permanent_volid(), disk_add_volume_extension(), disk_reserve_from_cache(), disk_spacedb(), logpb_backup(), xboot_check_db_consistency(), xboot_find_last_permanent(), xboot_find_last_temp(), xboot_find_number_permanent_volumes(), and xboot_find_number_temp_volumes().
void disk_manager_final | ( | void | ) |
Definition at line 4980 of file disk_manager.c.
References disk_auto_volume_expansion_daemon_destroy(), and disk_cache_final().
Referenced by boot_server_all_finalize(), and disk_manager_init().
int disk_manager_init | ( | THREAD_ENTRY * | thread_p, |
bool | load_from_disk | ||
) |
Definition at line 4933 of file disk_manager.c.
References assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, disk_auto_volume_expansion_daemon_init(), disk_cache_final(), disk_cache_init(), disk_cache_load_all_volumes(), disk_log, disk_Logging, disk_manager_final(), DISK_SECTOR_NPAGES, disk_Temp_max_sects, NO_ERROR, NULL, prm_get_bool_value(), prm_get_integer_value(), PRM_ID_BOSR_MAXTMP_PAGES, PRM_ID_DISK_LOGGING, and SECTID_MAX.
Referenced by boot_remove_all_volumes(), boot_restart_server(), disk_format_first_volume(), and xboot_emergency_patch().
|
static |
Definition at line 5213 of file disk_manager.c.
References assert, DB_PERMANENT_DATA_PURPOSE, and DB_TEMPORARY_DATA_PURPOSE.
Referenced by disk_add_volume(), disk_reserve_sectors(), disk_vhdr_dump(), and disk_volume_header_next_scan().
|
static |
Definition at line 4394 of file disk_manager.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, assert_release, DB_PERMANENT_VOLTYPE, DB_TEMPORARY_DATA_PURPOSE, disk_cache_lock_reserve(), disk_cache_lock_reserve_for_purpose(), disk_cache_unlock_reserve(), disk_cache_unlock_reserve_for_purpose(), disk_extend(), disk_lock_extend(), disk_log, disk_reserve_from_cache_vols(), disk_Temp_max_sects, disk_type_to_string(), disk_unlock_extend(), ER_BO_MAXTEMP_SPACE_HAS_BEEN_EXCEEDED, ER_ERROR_SEVERITY, ER_FAILED, er_set(), disk_perm_info::extend_info, disk_temp_info::extend_info, disk_reserve_context::n_cache_reserve_remaining, NO_ERROR, disk_extend_info::nsect_free, disk_extend_info::nsect_intention, disk_temp_info::nsect_perm_free, disk_extend_info::nsect_total, NULL, disk_extend_info::owner_reserve, disk_cache::perm_purpose_info, disk_reserve_context::purpose, STATIC_INLINE, disk_cache::temp_purpose_info, thread_get_entry_index(), and disk_extend_info::voltype.
Referenced by disk_reserve_sectors().
STATIC_INLINE void disk_reserve_from_cache_vols | ( | DB_VOLTYPE | type, |
DISK_RESERVE_CONTEXT * | context | ||
) |
Definition at line 4543 of file disk_manager.c.
References assert, DB_PERMANENT_VOLTYPE, disk_compatible_type_and_purpose(), disk_reserve_from_cache_volume(), disk_perm_info::extend_info, disk_temp_info::extend_info, LOG_MAX_DBVOLID, disk_reserve_context::n_cache_reserve_remaining, disk_cache_volinfo::nsect_free, disk_reserve_context::nsect_total, disk_extend_info::nsect_vol_max, disk_cache::nvols_perm, disk_cache::nvols_temp, disk_cache::perm_purpose_info, disk_cache_volinfo::purpose, disk_reserve_context::purpose, STATIC_INLINE, disk_cache::temp_purpose_info, and disk_cache::vols.
Referenced by disk_reserve_from_cache().
STATIC_INLINE void disk_reserve_from_cache_volume | ( | VOLID | volid, |
DISK_RESERVE_CONTEXT * | context | ||
) |
Definition at line 4597 of file disk_manager.c.
References assert, assert_release, disk_reserve_context::cache_vol_reserve, disk_cache_update_vol_free(), disk_check_own_reserve_for_purpose(), disk_log, DISK_RESERVE_CONTEXT_AS_ARGS, DISK_RESERVE_CONTEXT_MSG, LOG_MAX_DBVOLID, disk_reserve_context::n_cache_reserve_remaining, disk_reserve_context::n_cache_vol_reserve, disk_cache_vol_reserve::nsect, disk_cache_volinfo::nsect_free, disk_reserve_context::purpose, disk_volume_header::volid, disk_cache_vol_reserve::volid, and disk_cache::vols.
Referenced by disk_extend(), and disk_reserve_from_cache_vols().
int disk_reserve_sectors | ( | THREAD_ENTRY * | thread_p, |
DB_VOLPURPOSE | purpose, | ||
VOLID | volid_hint, | ||
int | n_sectors, | ||
VSID * | reserved_sectors | ||
) |
Definition at line 4221 of file disk_manager.c.
References _er_log_debug(), ARG_FILE_LINE, assert, ASSERT_ERROR, assert_release, disk_reserve_context::cache_vol_reserve, CSECT_DISK_CHECK, csect_enter_as_reader, csect_exit, DB_PERMANENT_DATA_PURPOSE, DB_TEMPORARY_DATA_PURPOSE, disk_cache_free_reserved(), disk_check(), disk_compare_vsids(), DISK_INVALID, disk_log, disk_purpose_to_string(), disk_reserve_from_cache(), disk_reserve_sectors_in_volume(), disk_unreserve_ordered_sectors_without_csect(), ER_BO_CANNOT_CREATE_VOL, er_clear(), ER_FAILED, ER_FATAL_ERROR_SEVERITY, ER_GENERIC_ERROR, ER_INTERRUPTED, ER_IO_FORMAT_OUT_OF_SPACE, ER_IO_MOUNT_FAIL, ER_IO_WRITE, er_set(), error(), INF_WAIT, log_check_system_op_is_started(), log_sysop_abort(), log_sysop_attach_to_outer(), log_sysop_start(), logtb_set_check_interrupt(), disk_reserve_context::n_cache_reserve_remaining, disk_reserve_context::n_cache_vol_reserve, NO_ERROR, disk_cache_vol_reserve::nsect, disk_reserve_context::nsect_total, NULL, disk_volume_header::purpose, disk_reserve_context::purpose, disk_cache_vol_reserve::volid, and disk_reserve_context::vsidp.
Referenced by file_create(), file_perm_expand(), and file_temp_alloc().
|
static |
Definition at line 3997 of file disk_manager.c.
References assert, ASSERT_ERROR, assert_release, disk_reserve_context::cache_vol_reserve, disk_get_volheader, disk_log, DISK_SECTS_ASSERT_ROUNDED, DISK_SECTS_ROUND_DOWN, DISK_STAB_CURSOR_INITIALIZER, disk_stab_cursor_set_at_end(), disk_stab_cursor_set_at_sectid(), disk_stab_cursor_set_at_start(), disk_stab_iterate_units(), disk_stab_unit_reserve(), ER_FAILED, disk_volume_header::hint_allocsect, NO_ERROR, disk_cache_vol_reserve::nsect, disk_volume_header::nsect_total, disk_reserve_context::nsects_lastvol_remaining, NULL, NULL_VOLID, PGBUF_LATCH_WRITE, pgbuf_unfix, disk_volume_header::volid, disk_cache_vol_reserve::volid, and disk_reserve_context::vsidp.
Referenced by disk_reserve_sectors().
void disk_rv_dump_hdr | ( | FILE * | fp, |
int | length_ignore, | ||
void * | data | ||
) |
Definition at line 1405 of file disk_manager.c.
References disk_vhdr_dump().
void disk_rv_dump_init_map | ( | FILE * | fp, |
int | length_ignore, | ||
void * | data | ||
) |
Definition at line 1453 of file disk_manager.c.
void disk_rv_dump_link | ( | FILE * | fp, |
int | length_ignore, | ||
void * | data | ||
) |
Definition at line 1528 of file disk_manager.c.
References disk_recv_link_perm_volume::next_vol_fullname, and disk_recv_link_perm_volume::next_volid.
void disk_rv_dump_set_boot_hfid | ( | FILE * | fp, |
int | length_ignore, | ||
void * | data | ||
) |
Definition at line 1567 of file disk_manager.c.
References vfid::fileid, hfid::hpgid, hfid::vfid, and vfid::volid.
void disk_rv_dump_set_creation_time | ( | FILE * | fp, |
int | length_ignore, | ||
void * | data | ||
) |
Definition at line 1489 of file disk_manager.c.
References disk_recv_change_creation::chkpt_lsa, disk_recv_change_creation::db_creation, log_lsa::offset, log_lsa::pageid, and disk_recv_change_creation::vol_fullname.
void disk_rv_dump_volume_expand | ( | FILE * | fp, |
int | length_ignore, | ||
void * | data | ||
) |
Definition at line 1600 of file disk_manager.c.
References disk_recv_data_volume_expand::npages, and disk_recv_data_volume_expand::volid.
int disk_rv_redo_dboutside_newvol | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 1196 of file disk_manager.c.
References log_rcv::data, DB_TEMPORARY_DATA_PURPOSE, DISK_SECTS_NPAGES, disk_vhdr_get_vol_fullname(), fileio_find_volume_descriptor_with_label(), fileio_format(), IO_PAGESIZE, NO_ERROR, disk_volume_header::nsect_total, NULL, NULL_VOLDES, pgbuf_invalidate_all, disk_volume_header::purpose, and disk_volume_header::volid.
int disk_rv_redo_format | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 1325 of file disk_manager.c.
References assert, assert_release, disk_cache_lock_reserve_for_purpose(), disk_cache_unlock_reserve_for_purpose(), disk_cache_update_vol_free(), disk_log, disk_stab_count_free(), disk_stab_iterate_units_all(), disk_verify_volume_header(), disk_perm_info::extend_info, if(), log_rv_copy_char(), NO_ERROR, disk_cache_volinfo::nsect_free, disk_volume_header::nsect_max, disk_extend_info::nsect_max, disk_volume_header::nsect_total, disk_extend_info::nsect_total, disk_cache::nvols_perm, log_rcv::offset, PAGE_VOLHEADER, disk_cache::perm_purpose_info, PGBUF_LATCH_READ, PGBUF_PAGE_LSA_AS_ARGS, pgbuf_set_page_ptype(), log_rcv::pgptr, disk_volume_header::purpose, disk_cache_volinfo::purpose, disk_volume_header::volid, and disk_cache::vols.
int disk_rv_redo_init_map | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 1419 of file disk_manager.c.
References BIT64_FULL, bit64_set_trailing_bits(), log_rcv::data, DB_PAGESIZE, DISK_STAB_UNIT_BIT_COUNT, DONT_FREE, NO_ERROR, PAGE_VOLBITMAP, pgbuf_set_dirty(), pgbuf_set_page_ptype(), and log_rcv::pgptr.
int disk_rv_redo_volume_expand | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 1582 of file disk_manager.c.
References assert, log_rcv::data, DB_PERMANENT_VOLTYPE, fileio_expand_to(), log_rcv::length, disk_recv_data_volume_expand::npages, and disk_recv_data_volume_expand::volid.
int disk_rv_reserve_sectors | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 3834 of file disk_manager.c.
References assert, assert_release, bit64_count_ones(), BIT64_HEXA_PRINT_FORMAT, CSECT_DISK_CHECK, csect_enter_as_reader, csect_exit, log_rcv::data, disk_cache_lock_reserve_for_purpose(), disk_cache_unlock_reserve_for_purpose(), disk_cache_update_vol_free(), disk_get_volpurpose(), disk_log, DISK_STAB_PAGE_UNITS_COUNT, DONT_FREE, ER_FAILED, INF_WAIT, log_rcv::length, NO_ERROR, NULL, log_rcv::offset, OLD_PAGE, PAGE_VOLBITMAP, pgbuf_check_page_ptype(), pgbuf_fix, pgbuf_get_volume_id(), pgbuf_get_vpid(), PGBUF_LATCH_WRITE, PGBUF_PAGE_STATE_ARGS, PGBUF_PAGE_STATE_MSG, pgbuf_set_dirty(), PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix_and_init, log_rcv::pgptr, and disk_volume_header::purpose.
int disk_rv_undo_format | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 1220 of file disk_manager.c.
References assert, assert_release, log_rcv::data, disk_cache_lock_reserve_for_purpose(), disk_cache_unlock_reserve_for_purpose(), disk_cache_update_vol_free(), disk_log, disk_unformat(), DISK_UNKNOWN_PURPOSE, DISK_VOLHEADER_PAGE, er_stack_pop(), er_stack_push(), disk_perm_info::extend_info, if(), log_append_dboutside_redo(), LOG_ISRESTARTED, logpb_recreate_volume_info(), max, NO_ERROR, disk_cache_volinfo::nsect_free, disk_volume_header::nsect_max, disk_extend_info::nsect_max, disk_volume_header::nsect_total, disk_extend_info::nsect_total, NULL, NULL_VOLID, disk_cache::nvols_perm, log_rcv::offset, vpid::pageid, disk_cache::perm_purpose_info, pgbuf_fix_if_not_deallocated, PGBUF_LATCH_READ, PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix, disk_cache_volinfo::purpose, RVLOG_OUTSIDE_LOGICAL_REDO_NOOP, disk_volume_header::volid, vpid::volid, disk_extend_info::volid_extend, and disk_cache::vols.
int disk_rv_undoredo_link | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 1505 of file disk_manager.c.
References log_rcv::data, disk_vhdr_set_next_vol_fullname(), DONT_FREE, disk_recv_link_perm_volume::next_vol_fullname, disk_volume_header::next_volid, disk_recv_link_perm_volume::next_volid, NO_ERROR, pgbuf_set_dirty(), and log_rcv::pgptr.
int disk_rv_undoredo_set_boot_hfid | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 1543 of file disk_manager.c.
References disk_volume_header::boot_hfid, log_rcv::data, DONT_FREE, vfid::fileid, hfid::hpgid, NO_ERROR, pgbuf_set_dirty(), log_rcv::pgptr, hfid::vfid, and vfid::volid.
int disk_rv_undoredo_set_creation_time | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 1464 of file disk_manager.c.
References disk_volume_header::chkpt_lsa, disk_recv_change_creation::chkpt_lsa, log_rcv::data, disk_volume_header::db_creation, disk_recv_change_creation::db_creation, disk_vhdr_set_vol_fullname(), DONT_FREE, NO_ERROR, pgbuf_set_dirty(), log_rcv::pgptr, and disk_recv_change_creation::vol_fullname.
int disk_rv_unreserve_sectors | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 3915 of file disk_manager.c.
References assert, assert_release, bit64_count_ones(), BIT64_HEXA_PRINT_FORMAT, CSECT_DISK_CHECK, csect_enter_as_reader, csect_exit, log_rcv::data, disk_cache_lock_reserve_for_purpose(), disk_cache_unlock_reserve_for_purpose(), disk_cache_update_vol_free(), disk_get_volpurpose(), disk_log, DISK_STAB_PAGE_UNITS_COUNT, DONT_FREE, ER_FAILED, INF_WAIT, log_rcv::length, NO_ERROR, NULL, log_rcv::offset, OLD_PAGE, PAGE_VOLBITMAP, pgbuf_check_page_ptype(), pgbuf_fix, pgbuf_get_volume_id(), pgbuf_get_vpid(), PGBUF_LATCH_WRITE, PGBUF_PAGE_STATE_ARGS, PGBUF_PAGE_STATE_MSG, pgbuf_set_dirty(), PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix_and_init, log_rcv::pgptr, and disk_volume_header::purpose.
int disk_rv_volhead_extend_redo | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 2001 of file disk_manager.c.
References assert, assert_release, log_rcv::data, DB_PERMANENT_DATA_PURPOSE, DB_PERMANENT_VOLTYPE, disk_cache_lock_reserve_for_purpose(), disk_cache_unlock_reserve_for_purpose(), disk_cache_update_vol_free(), disk_log, disk_stab_count_free(), disk_stab_cursor_set_at_end(), disk_stab_cursor_set_at_sectid(), disk_stab_iterate_units(), disk_verify_volume_header(), DONT_FREE, disk_perm_info::extend_info, log_rcv::length, NO_ERROR, disk_volume_header::nsect_total, disk_extend_info::nsect_total, disk_cache::perm_purpose_info, PGBUF_LATCH_READ, PGBUF_PAGE_LSA_AS_ARGS, pgbuf_set_dirty(), log_rcv::pgptr, disk_volume_header::purpose, disk_volume_header::type, and disk_volume_header::volid.
int disk_rv_volhead_extend_undo | ( | THREAD_ENTRY * | thread_p, |
LOG_RCV * | rcv | ||
) |
Definition at line 2060 of file disk_manager.c.
References assert, log_rcv::data, DB_PERMANENT_DATA_PURPOSE, DB_PERMANENT_VOLTYPE, disk_cache_lock_reserve_for_purpose(), disk_cache_unlock_reserve_for_purpose(), disk_cache_update_vol_free(), disk_log, disk_verify_volume_header(), DONT_FREE, disk_perm_info::extend_info, log_rcv::length, NO_ERROR, disk_volume_header::nsect_total, disk_extend_info::nsect_total, disk_cache::perm_purpose_info, PGBUF_PAGE_LSA_AS_ARGS, pgbuf_set_dirty(), log_rcv::pgptr, disk_volume_header::purpose, disk_volume_header::type, and disk_volume_header::volid.
int disk_sectors_to_extend_npages | ( | const int | num_pages | ) |
Definition at line 6744 of file disk_manager.c.
References DISK_PAGES_TO_SECTS, and DISK_SECTS_ROUND_UP.
Referenced by createdb(), disk_add_volume_extension(), and disk_format_first_volume().
int disk_set_boot_hfid | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid, | ||
const HFID * | hfid | ||
) |
Definition at line 1089 of file disk_manager.c.
References disk_volume_header::boot_hfid, disk_verify_volume_header(), DISK_VOLHEADER_PAGE, ER_FAILED, FREE, HFID_COPY, log_append_undoredo_data(), NO_ERROR, NULL, log_data_addr::offset, OLD_PAGE, vpid::pageid, pgbuf_fix, PGBUF_LATCH_WRITE, pgbuf_set_dirty(), PGBUF_UNCONDITIONAL_LATCH, log_data_addr::pgptr, RVDK_RESET_BOOT_HFID, log_data_addr::vfid, disk_volume_header::volid, and vpid::volid.
Referenced by boot_create_all_volumes().
int disk_set_checkpoint | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid, | ||
const LOG_LSA * | log_chkpt_lsa | ||
) |
Definition at line 5421 of file disk_manager.c.
References ASSERT_ERROR, disk_volume_header::chkpt_lsa, disk_get_volheader, disk_verify_volume_header(), DONT_FREE, FREE, log_skip_logging(), NO_ERROR, NULL, log_lsa::offset, log_data_addr::offset, log_lsa::pageid, pgbuf_flush(), PGBUF_LATCH_WRITE, pgbuf_set_dirty(), log_data_addr::pgptr, and log_data_addr::vfid.
Referenced by logpb_backup_for_volume(), and logpb_checkpoint().
int disk_set_creation | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid, | ||
const char * | new_vol_fullname, | ||
const INT64 * | new_dbcreation, | ||
const LOG_LSA * | new_chkptlsa, | ||
bool | logchange, | ||
DISK_FLUSH_TYPE | flush | ||
) |
Definition at line 850 of file disk_manager.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, disk_volume_header::chkpt_lsa, disk_recv_change_creation::chkpt_lsa, disk_volume_header::db_creation, disk_recv_change_creation::db_creation, DB_MAX_PATH_LENGTH, DISK_FLUSH, DISK_FLUSH_AND_INVALIDATE, disk_get_volheader, disk_verify_volume_header(), disk_vhdr_get_vol_fullname(), disk_vhdr_set_vol_fullname(), DONT_FREE, ER_BO_FULL_DATABASE_NAME_IS_TOO_LONG, ER_ERROR_SEVERITY, ER_FAILED, ER_FATAL_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), FREE, free_and_init, log_append_undoredo_data(), LOG_DATA_ADDR_INITIALIZER, log_skip_logging(), NO_ERROR, NULL, pgbuf_flush(), pgbuf_invalidate, PGBUF_LATCH_WRITE, pgbuf_set_dirty(), pgbuf_unfix_and_init, log_data_addr::pgptr, RVDK_CHANGE_CREATION, strlen, and disk_recv_change_creation::vol_fullname.
Referenced by fileio_restore_volume(), log_recreate(), logpb_copy_volume(), and logpb_rename_all_volumes_files().
int disk_set_link | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid, | ||
INT16 | next_volid, | ||
const char * | next_volext_fullname, | ||
bool | logchange, | ||
DISK_FLUSH_TYPE | flush | ||
) |
Definition at line 969 of file disk_manager.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, DISK_FLUSH_AND_INVALIDATE, disk_get_volheader, disk_verify_volume_header(), disk_vhdr_get_next_vol_fullname(), disk_vhdr_set_next_vol_fullname(), DISK_VOLHEADER_PAGE, DONT_FREE, ER_ERROR_SEVERITY, ER_FAILED, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), FREE, free_and_init, log_append_undo_data2(), log_append_undoredo_data(), LOG_DATA_ADDR_INITIALIZER, log_skip_logging(), logpb_force_flush_pages(), disk_recv_link_perm_volume::next_vol_fullname, disk_volume_header::next_volid, disk_recv_link_perm_volume::next_volid, NO_ERROR, NULL, NULL_VOLID, log_data_addr::offset, vpid::pageid, pgbuf_flush(), pgbuf_invalidate, PGBUF_LATCH_WRITE, pgbuf_set_dirty(), pgbuf_unfix_and_init, log_data_addr::pgptr, RVDK_LINK_PERM_VOLEXT, RVPGBUF_FLUSH_PAGE, strlen, log_data_addr::vfid, disk_volume_header::volid, and vpid::volid.
Referenced by disk_format(), fileio_restore_volume(), logpb_copy_database(), and logpb_rename_all_volumes_files().
int disk_spacedb | ( | THREAD_ENTRY * | thread_p, |
SPACEDB_ALL * | spaceall, | ||
SPACEDB_ONEVOL ** | spacevols | ||
) |
Definition at line 5927 of file disk_manager.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR, DB_MAX_PATH_LENGTH, DB_PERMANENT_VOLTYPE, DB_TEMPORARY_DATA_PURPOSE, DB_TEMPORARY_VOLTYPE, disk_get_volheader, disk_lock_extend(), DISK_SECTS_NPAGES, disk_unlock_extend(), disk_vhdr_get_vol_fullname(), ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), disk_perm_info::extend_info, disk_temp_info::extend_info, free_and_init, i, LOG_MAX_DBVOLID, NO_ERROR, spacedb_all::npage_free, spacedb_all::npage_used, disk_cache_volinfo::nsect_free, disk_extend_info::nsect_free, disk_temp_info::nsect_perm_free, disk_temp_info::nsect_perm_total, disk_volume_header::nsect_total, disk_extend_info::nsect_total, NULL, spacedb_all::nvols, disk_cache::nvols_perm, disk_cache::nvols_temp, disk_cache::perm_purpose_info, PGBUF_LATCH_READ, pgbuf_unfix_and_init, disk_cache_volinfo::purpose, SPACEDB_PERM_PERM_ALL, SPACEDB_PERM_TEMP_ALL, SPACEDB_TEMP_TEMP_ALL, SPACEDB_TOTAL_ALL, disk_cache::temp_purpose_info, and disk_cache::vols.
Referenced by netcl_spacedb(), and netsr_spacedb().
|
static |
Definition at line 3725 of file disk_manager.c.
References bit64_count_zeros(), NO_ERROR, and disk_stab_cursor::unit.
Referenced by disk_check_volume(), disk_rv_redo_format(), disk_rv_volhead_extend_redo(), and disk_volume_boot().
STATIC_INLINE void disk_stab_cursor_check_valid | ( | const DISK_STAB_CURSOR * | cursor | ) |
Definition at line 3336 of file disk_manager.c.
References assert, DISK_STAB_PAGE_BIT_COUNT, DISK_STAB_PAGE_UNITS_COUNT, DISK_STAB_UNIT_BIT_COUNT, DISK_STAB_UNIT_SIZE_OF, LOG_ISRESTARTED, NULL, NULL_PAGEID, disk_stab_cursor::offset_to_bit, disk_stab_cursor::offset_to_unit, disk_stab_cursor::page, disk_stab_cursor::pageid, disk_stab_cursor::sectid, disk_volume_header::stab_first_page, disk_volume_header::stab_npages, STATIC_INLINE, disk_stab_cursor::unit, and disk_stab_cursor::volheader.
Referenced by disk_stab_cursor_clear_bit(), disk_stab_cursor_get_bit_index_in_page(), disk_stab_cursor_get_sectid(), disk_stab_cursor_is_bit_set(), disk_stab_cursor_set_bit(), disk_stab_iterate_units(), and disk_stab_unit_reserve().
STATIC_INLINE void disk_stab_cursor_clear_bit | ( | DISK_STAB_CURSOR * | cursor | ) |
Definition at line 3410 of file disk_manager.c.
References assert, bit64_clear(), disk_stab_cursor_check_valid(), disk_stab_cursor_is_bit_set(), disk_stab_cursor::offset_to_bit, STATIC_INLINE, and disk_stab_cursor::unit.
STATIC_INLINE int disk_stab_cursor_compare | ( | const DISK_STAB_CURSOR * | first_cursor, |
const DISK_STAB_CURSOR * | second_cursor | ||
) |
Definition at line 3292 of file disk_manager.c.
References assert, NULL, disk_stab_cursor::offset_to_bit, disk_stab_cursor::offset_to_unit, disk_stab_cursor::pageid, and STATIC_INLINE.
Referenced by disk_stab_iterate_units().
STATIC_INLINE int disk_stab_cursor_fix | ( | THREAD_ENTRY * | thread_p, |
DISK_STAB_CURSOR * | cursor, | ||
PGBUF_LATCH_MODE | latch_mode | ||
) |
Definition at line 3457 of file disk_manager.c.
References assert, ASSERT_ERROR_AND_SET, NO_ERROR, NULL, disk_stab_cursor::offset_to_unit, OLD_PAGE, disk_stab_cursor::page, disk_stab_cursor::pageid, vpid::pageid, pgbuf_fix, PGBUF_UNCONDITIONAL_LATCH, STATIC_INLINE, disk_stab_cursor::unit, disk_stab_cursor::volheader, disk_volume_header::volid, vpid::volid, and VPID_INITIALIZER.
Referenced by disk_is_sector_reserved(), and disk_stab_iterate_units().
STATIC_INLINE int disk_stab_cursor_get_bit_index_in_page | ( | const DISK_STAB_CURSOR * | cursor | ) |
Definition at line 3427 of file disk_manager.c.
References disk_stab_cursor_check_valid(), DISK_STAB_UNIT_BIT_COUNT, disk_stab_cursor::offset_to_bit, disk_stab_cursor::offset_to_unit, and STATIC_INLINE.
STATIC_INLINE SECTID disk_stab_cursor_get_sectid | ( | const DISK_STAB_CURSOR * | cursor | ) |
Definition at line 3441 of file disk_manager.c.
References disk_stab_cursor_check_valid(), disk_stab_cursor::sectid, and STATIC_INLINE.
Referenced by disk_stab_unit_reserve().
STATIC_INLINE bool disk_stab_cursor_is_bit_set | ( | const DISK_STAB_CURSOR * | cursor | ) |
Definition at line 3378 of file disk_manager.c.
References bit64_is_set(), disk_stab_cursor_check_valid(), disk_stab_cursor::offset_to_bit, STATIC_INLINE, and disk_stab_cursor::unit.
Referenced by disk_is_sector_reserved(), disk_stab_cursor_clear_bit(), disk_stab_cursor_set_bit(), disk_stab_dump_unit(), and disk_stab_unit_reserve().
STATIC_INLINE void disk_stab_cursor_set_at_end | ( | const DISK_VOLUME_HEADER * | volheader, |
DISK_STAB_CURSOR * | cursor | ||
) |
Definition at line 3248 of file disk_manager.c.
References assert, DISK_SECTS_ASSERT_ROUNDED, disk_stab_cursor_set_at_sectid(), disk_volume_header::nsect_total, NULL, STATIC_INLINE, and disk_stab_cursor::volheader.
Referenced by disk_check_sectors_are_reserved_in_volume(), disk_reserve_sectors_in_volume(), disk_rv_volhead_extend_redo(), disk_stab_init(), disk_stab_iterate_units_all(), and disk_unreserve_sectors_from_volume().
STATIC_INLINE void disk_stab_cursor_set_at_sectid | ( | const DISK_VOLUME_HEADER * | volheader, |
SECTID | sectid, | ||
DISK_STAB_CURSOR * | cursor | ||
) |
Definition at line 3222 of file disk_manager.c.
References assert, DISK_ALLOCTBL_SECTOR_BIT_OFFSET, DISK_ALLOCTBL_SECTOR_PAGE_OFFSET, DISK_ALLOCTBL_SECTOR_UNIT_OFFSET, disk_volume_header::nsect_total, NULL, disk_stab_cursor::offset_to_bit, disk_stab_cursor::offset_to_unit, disk_stab_cursor::page, disk_stab_cursor::pageid, disk_stab_cursor::sectid, disk_volume_header::stab_first_page, disk_volume_header::stab_npages, STATIC_INLINE, disk_stab_cursor::unit, and disk_stab_cursor::volheader.
Referenced by disk_check_sectors_are_reserved_in_volume(), disk_is_sector_reserved(), disk_reserve_sectors_in_volume(), disk_rv_volhead_extend_redo(), disk_stab_cursor_set_at_end(), disk_stab_init(), and disk_unreserve_sectors_from_volume().
STATIC_INLINE void disk_stab_cursor_set_at_start | ( | const DISK_VOLUME_HEADER * | volheader, |
DISK_STAB_CURSOR * | cursor | ||
) |
Definition at line 3267 of file disk_manager.c.
References assert, NULL, disk_stab_cursor::offset_to_bit, disk_stab_cursor::offset_to_unit, disk_stab_cursor::page, disk_stab_cursor::pageid, disk_stab_cursor::sectid, disk_volume_header::stab_first_page, STATIC_INLINE, disk_stab_cursor::unit, and disk_stab_cursor::volheader.
Referenced by disk_reserve_sectors_in_volume(), and disk_stab_iterate_units_all().
STATIC_INLINE void disk_stab_cursor_set_bit | ( | DISK_STAB_CURSOR * | cursor | ) |
Definition at line 3393 of file disk_manager.c.
References assert, bit64_set(), disk_stab_cursor_check_valid(), disk_stab_cursor_is_bit_set(), disk_stab_cursor::offset_to_bit, STATIC_INLINE, and disk_stab_cursor::unit.
Referenced by disk_stab_unit_reserve().
STATIC_INLINE void disk_stab_cursor_unfix | ( | THREAD_ENTRY * | thread_p, |
DISK_STAB_CURSOR * | cursor | ||
) |
Definition at line 3489 of file disk_manager.c.
References NULL, disk_stab_cursor::page, pgbuf_unfix_and_init, and disk_stab_cursor::unit.
Referenced by disk_is_sector_reserved(), and disk_stab_iterate_units().
|
static |
Definition at line 3805 of file disk_manager.c.
References ASSERT_ERROR, disk_stab_dump_unit(), disk_stab_iterate_units_all(), NO_ERROR, and PGBUF_LATCH_READ.
Referenced by disk_dump_volume_system_info().
|
static |
Definition at line 3773 of file disk_manager.c.
References disk_stab_cursor_is_bit_set(), DISK_STAB_UNIT_BIT_COUNT, NO_ERROR, and disk_stab_cursor::sectid.
Referenced by disk_stab_dump().
|
static |
Definition at line 4840 of file disk_manager.c.
References assert, ASSERT_ERROR, ASSERT_ERROR_AND_SET, DB_PAGESIZE, DB_TEMPORARY_DATA_PURPOSE, disk_stab_cursor_set_at_end(), disk_stab_cursor_set_at_sectid(), disk_stab_iterate_units(), DISK_STAB_PAGE_BIT_COUNT, disk_stab_set_bits_contiguous(), DONT_FREE, FREE, log_append_redo_data2(), LOG_ISRESTARTED, NEW_PAGE, NO_ERROR, NULL, NULL_OFFSET, PAGE_VOLBITMAP, vpid::pageid, pgbuf_fix, pgbuf_flush(), PGBUF_LATCH_WRITE, pgbuf_set_dirty(), pgbuf_set_dirty_and_free, pgbuf_set_lsa_as_temporary(), pgbuf_set_page_ptype(), PGBUF_UNCONDITIONAL_LATCH, pgbuf_unfix, disk_volume_header::purpose, RVDK_INITMAP, SECTOR_FROM_PAGEID, disk_volume_header::stab_first_page, disk_volume_header::stab_npages, disk_volume_header::sys_lastpage, disk_volume_header::volid, and vpid::volid.
Referenced by disk_format(), and disk_volume_boot().
|
static |
Definition at line 3631 of file disk_manager.c.
References assert, ASSERT_ERROR, disk_stab_cursor_check_valid(), disk_stab_cursor_compare(), disk_stab_cursor_fix(), disk_stab_cursor_unfix(), DISK_STAB_PAGE_UNITS_COUNT, DISK_STAB_UNIT_BIT_COUNT, NO_ERROR, NULL, disk_stab_cursor::offset_to_bit, disk_stab_cursor::offset_to_unit, disk_stab_cursor::page, disk_stab_cursor::pageid, disk_stab_cursor::sectid, and disk_stab_cursor::unit.
Referenced by disk_check_sectors_are_reserved_in_volume(), disk_reserve_sectors_in_volume(), disk_rv_volhead_extend_redo(), disk_stab_init(), disk_stab_iterate_units_all(), and disk_unreserve_sectors_from_volume().
|
static |
Definition at line 3704 of file disk_manager.c.
References disk_stab_cursor_set_at_end(), disk_stab_cursor_set_at_start(), and disk_stab_iterate_units().
Referenced by disk_check_volume(), disk_rv_redo_format(), disk_stab_dump(), and disk_volume_boot().
|
static |
Definition at line 3744 of file disk_manager.c.
References BIT64_FULL, bit64_set_trailing_bits(), DISK_STAB_UNIT_BIT_COUNT, NO_ERROR, and disk_stab_cursor::unit.
Referenced by disk_stab_init().
|
static |
Definition at line 5172 of file disk_manager.c.
References assert, assert_release, bit64_set(), disk_log, DISK_STAB_UNIT_BIT_COUNT, ER_FAILED, NO_ERROR, disk_reserve_context::nsects_lastvol_remaining, disk_stab_cursor::sectid, vsid::sectid, disk_stab_cursor::unit, vsid::volid, and disk_reserve_context::vsidp.
Referenced by disk_check_sectors_are_reserved_in_volume().
|
static |
Definition at line 3508 of file disk_manager.c.
References assert, bit64_count_trailing_ones(), BIT64_FULL, bit64_set(), bit64_set_trailing_bits(), DB_PERMANENT_DATA_PURPOSE, disk_log, disk_stab_cursor_check_valid(), disk_stab_cursor_get_sectid(), disk_stab_cursor_is_bit_set(), disk_stab_cursor_set_bit(), DISK_STAB_UNIT_BIT_COUNT, DONT_FREE, i, log_append_undoredo_data2(), NO_ERROR, disk_reserve_context::nsects_lastvol_remaining, NULL, disk_stab_cursor::offset_to_bit, disk_stab_cursor::offset_to_unit, disk_stab_cursor::page, pgbuf_set_dirty(), disk_reserve_context::purpose, RVDK_RESERVE_SECTORS, disk_stab_cursor::sectid, vsid::sectid, disk_stab_cursor::unit, disk_stab_cursor::volheader, disk_volume_header::volid, vsid::volid, and disk_reserve_context::vsidp.
Referenced by disk_reserve_sectors_in_volume().
|
static |
Definition at line 4779 of file disk_manager.c.
References assert, bit64_set(), DB_PERMANENT_DATA_PURPOSE, DB_TEMPORARY_DATA_PURPOSE, disk_cache_lock_reserve_for_purpose(), disk_cache_unlock_reserve_for_purpose(), disk_cache_update_vol_free(), disk_log, DISK_STAB_UNIT_BIT_COUNT, DONT_FREE, log_append_postpone(), LOG_DATA_ADDR_INITIALIZER, NO_ERROR, disk_reserve_context::nsects_lastvol_remaining, log_data_addr::offset, disk_stab_cursor::offset_to_unit, disk_stab_cursor::page, pgbuf_set_dirty(), log_data_addr::pgptr, disk_reserve_context::purpose, RVDK_UNRESERVE_SECTORS, disk_stab_cursor::sectid, vsid::sectid, disk_stab_cursor::unit, disk_stab_cursor::volheader, disk_volume_header::volid, vsid::volid, and disk_reserve_context::vsidp.
Referenced by disk_unreserve_sectors_from_volume().
|
static |
Definition at line 5235 of file disk_manager.c.
References DB_PERMANENT_VOLTYPE.
Referenced by disk_add_volume(), disk_extend(), disk_reserve_from_cache(), disk_vhdr_dump(), and disk_volume_header_next_scan().
int disk_unformat | ( | THREAD_ENTRY * | thread_p, |
const char * | vol_fullname | ||
) |
Definition at line 820 of file disk_manager.c.
References fileio_find_volume_id_with_label(), fileio_unformat(), NO_ERROR, NULL_VOLID, pgbuf_flush_all(), pgbuf_invalidate_all, and disk_volume_header::volid.
Referenced by disk_add_volume(), disk_format(), and disk_rv_undo_format().
void disk_unlock_extend | ( | void | ) |
Definition at line 2784 of file disk_manager.c.
References assert, disk_cache::mutex_extend, disk_cache::owner_extend, pthread_mutex_unlock, STATIC_INLINE, and thread_get_current_entry_index().
Referenced by boot_find_next_permanent_volid(), disk_add_volume_extension(), disk_reserve_from_cache(), disk_spacedb(), logpb_backup(), xboot_check_db_consistency(), xboot_find_last_permanent(), xboot_find_last_temp(), xboot_find_number_permanent_volumes(), and xboot_find_number_temp_volumes().
int disk_unreserve_ordered_sectors | ( | THREAD_ENTRY * | thread_p, |
DB_VOLPURPOSE | purpose, | ||
int | nsects, | ||
VSID * | vsids | ||
) |
Definition at line 4634 of file disk_manager.c.
References ASSERT_ERROR, CSECT_DISK_CHECK, csect_enter_as_reader, csect_exit, disk_unreserve_ordered_sectors_without_csect(), INF_WAIT, and NO_ERROR.
Referenced by file_create(), and file_destroy().
|
static |
Definition at line 4666 of file disk_manager.c.
References assert, ASSERT_ERROR, disk_reserve_context::cache_vol_reserve, disk_log, DISK_RESERVE_CONTEXT_AS_ARGS, DISK_RESERVE_CONTEXT_MSG, disk_unreserve_sectors_from_volume(), disk_reserve_context::n_cache_reserve_remaining, disk_reserve_context::n_cache_vol_reserve, NO_ERROR, disk_cache_vol_reserve::nsect, disk_reserve_context::nsect_total, disk_reserve_context::nsects_lastvol_remaining, NULL_VOLID, disk_volume_header::purpose, disk_reserve_context::purpose, disk_volume_header::volid, disk_cache_vol_reserve::volid, vsid::volid, and disk_reserve_context::vsidp.
Referenced by disk_reserve_sectors(), and disk_unreserve_ordered_sectors().
|
static |
Definition at line 4725 of file disk_manager.c.
References assert, ASSERT_ERROR, disk_get_volheader, disk_log, DISK_SECTS_ROUND_DOWN, disk_stab_cursor_set_at_end(), disk_stab_cursor_set_at_sectid(), disk_stab_iterate_units(), disk_stab_unit_unreserve(), NO_ERROR, disk_reserve_context::nsects_lastvol_remaining, NULL, PGBUF_LATCH_WRITE, pgbuf_unfix, vsid::sectid, and disk_reserve_context::vsidp.
Referenced by disk_unreserve_ordered_sectors_without_csect().
STATIC_INLINE void disk_verify_volume_header | ( | THREAD_ENTRY * | thread_p, |
PAGE_PTR | pgptr | ||
) |
Definition at line 3143 of file disk_manager.c.
References assert, CEIL_PTVDIV, DB_PERMANENT_DATA_PURPOSE, DB_PERMANENT_VOLTYPE, DB_TEMPORARY_DATA_PURPOSE, DB_TEMPORARY_VOLTYPE, DISK_SECTOR_NPAGES, DISK_SECTS_ASSERT_ROUNDED, DISK_STAB_PAGE_BIT_COUNT, DISK_VOLHEADER_PAGE, disk_cache_volinfo::nsect_free, disk_volume_header::nsect_max, disk_volume_header::nsect_total, NULL, PAGE_VOLHEADER, pgbuf_check_page_ptype(), disk_volume_header::purpose, disk_volume_header::sect_npgs, disk_volume_header::stab_first_page, disk_volume_header::stab_npages, STATIC_INLINE, disk_volume_header::sys_lastpage, disk_volume_header::type, disk_volume_header::volid, and disk_cache::vols.
Referenced by disk_format(), disk_get_boot_hfid(), disk_get_checkpoint(), disk_get_creation_time(), disk_get_link(), disk_get_volheader_internal(), disk_rv_redo_format(), disk_rv_volhead_extend_redo(), disk_rv_volhead_extend_undo(), disk_set_boot_hfid(), disk_set_checkpoint(), disk_set_creation(), disk_set_link(), disk_volume_expand(), xdisk_get_fullname(), and xdisk_get_purpose_and_sys_lastpage().
|
static |
Definition at line 3094 of file disk_manager.c.
References disk_volume_header::boot_hfid, disk_volume_header::chkpt_lsa, CTIME_MAX, disk_volume_header::db_charset, disk_volume_header::db_creation, disk_purpose_to_string(), disk_type_to_string(), disk_vhdr_get_next_vol_fullname(), disk_vhdr_get_vol_fullname(), disk_vhdr_get_vol_remarks(), vfid::fileid, disk_volume_header::hint_allocsect, hfid::hpgid, disk_volume_header::iopagesize, disk_volume_header::magic, disk_volume_header::next_volid, disk_cache_volinfo::nsect_free, disk_volume_header::nsect_max, disk_volume_header::nsect_total, log_lsa::offset, log_lsa::pageid, disk_volume_header::purpose, disk_volume_header::sect_npgs, disk_volume_header::stab_first_page, disk_volume_header::stab_npages, STATIC_INLINE, disk_volume_header::sys_lastpage, disk_volume_header::type, hfid::vfid, disk_volume_header::volid, vfid::volid, and disk_cache::vols.
Referenced by disk_dump_volume_system_info(), and disk_rv_dump_hdr().
STATIC_INLINE char * disk_vhdr_get_next_vol_fullname | ( | const DISK_VOLUME_HEADER * | vhdr | ) |
Definition at line 5377 of file disk_manager.c.
References disk_volume_header::offset_to_next_vol_fullname, STATIC_INLINE, and disk_volume_header::var_fields.
Referenced by disk_get_link(), disk_set_link(), disk_vhdr_dump(), disk_vhdr_set_next_vol_fullname(), and disk_vhdr_set_vol_fullname().
STATIC_INLINE char * disk_vhdr_get_vol_fullname | ( | const DISK_VOLUME_HEADER * | vhdr | ) |
Definition at line 5365 of file disk_manager.c.
References disk_volume_header::offset_to_vol_fullname, STATIC_INLINE, and disk_volume_header::var_fields.
Referenced by disk_rv_redo_dboutside_newvol(), disk_set_creation(), disk_spacedb(), disk_vhdr_dump(), disk_vhdr_set_vol_fullname(), and xdisk_get_fullname().
STATIC_INLINE char * disk_vhdr_get_vol_remarks | ( | const DISK_VOLUME_HEADER * | vhdr | ) |
Definition at line 5389 of file disk_manager.c.
References disk_volume_header::offset_to_vol_remarks, STATIC_INLINE, and disk_volume_header::var_fields.
Referenced by disk_vhdr_dump(), disk_vhdr_length_of_varfields(), disk_vhdr_set_next_vol_fullname(), disk_vhdr_set_vol_remarks(), and xdisk_get_remarks().
STATIC_INLINE int disk_vhdr_length_of_varfields | ( | const DISK_VOLUME_HEADER * | vhdr | ) |
Definition at line 5401 of file disk_manager.c.
References disk_vhdr_get_vol_remarks(), disk_volume_header::offset_to_vol_remarks, and strlen.
Referenced by disk_format().
|
static |
Definition at line 5283 of file disk_manager.c.
References disk_vhdr_get_next_vol_fullname(), disk_vhdr_get_vol_remarks(), NO_ERROR, NULL, disk_volume_header::offset_to_next_vol_fullname, disk_volume_header::offset_to_vol_remarks, strlen, and disk_volume_header::var_fields.
Referenced by disk_format(), disk_rv_undoredo_link(), and disk_set_link().
|
static |
Definition at line 5247 of file disk_manager.c.
References DB_MAX_PATH_LENGTH, disk_vhdr_get_next_vol_fullname(), disk_vhdr_get_vol_fullname(), NO_ERROR, disk_volume_header::offset_to_next_vol_fullname, disk_volume_header::offset_to_vol_fullname, disk_volume_header::offset_to_vol_remarks, strlen, and disk_volume_header::var_fields.
Referenced by disk_format(), disk_rv_undoredo_set_creation_time(), and disk_set_creation().
|
static |
Definition at line 5330 of file disk_manager.c.
References DB_PAGESIZE, disk_vhdr_get_vol_remarks(), NO_ERROR, NULL, disk_volume_header::offset_to_vol_remarks, STATIC_INLINE, strlen, and disk_volume_header::var_fields.
Referenced by disk_format().
void disk_volheader_check_magic | ( | THREAD_ENTRY * | thread_p, |
const PAGE_PTR | page_volheader | ||
) |
Definition at line 6726 of file disk_manager.c.
References assert, CUBRID_MAGIC_DATABASE_VOLUME, CUBRID_MAGIC_MAX_LENGTH, disk_volume_header::magic, PAGE_VOLHEADER, and pgbuf_check_page_ptype().
Referenced by pgbuf_set_dirty().
|
static |
Definition at line 2388 of file disk_manager.c.
References assert, ASSERT_ERROR, BO_IS_SERVER_RESTARTED, DB_TEMPORARY_DATA_PURPOSE, DB_TEMPORARY_VOLTYPE, disk_auto_volume_expansion_daemon_destroy(), disk_auto_volume_expansion_daemon_init(), disk_get_volheader, disk_stab_count_free(), disk_stab_init(), disk_stab_iterate_units_all(), disk_volume_space_info::n_free_sects, disk_volume_space_info::n_max_sects, disk_volume_space_info::n_total_sects, NO_ERROR, disk_volume_header::nsect_max, disk_volume_header::nsect_total, NULL, NULL_VOLID, PGBUF_LATCH_READ, PGBUF_LATCH_WRITE, pgbuf_unfix, pgbuf_unfix_and_init, disk_volume_header::purpose, SECTOR_FROM_PAGEID, disk_volume_header::sys_lastpage, and disk_volume_header::type.
Referenced by disk_cache_load_volume().
|
static |
Definition at line 1883 of file disk_manager.c.
References ARG_FILE_LINE, assert, assert_release, DB_PERMANENT_VOLTYPE, disk_get_volheader, disk_log, DISK_SECTS_NPAGES, DISK_SECTS_ROUND_UP, disk_verify_volume_header(), DISK_VOLHEADER_AS_ARGS, DISK_VOLHEADER_MSG, ER_FAILED, ER_FATAL_ERROR_SEVERITY, ER_GENERIC_ERROR, er_set(), FI_TEST, FI_TEST_DISK_MANAGER_VOLUME_EXPAND, fileio_expand_to(), log_append_dboutside_redo(), log_append_undoredo_data2(), log_sysop_commit(), log_sysop_start(), logpb_force_flush_pages(), LSA_INITIALIZER, NO_ERROR, disk_recv_data_volume_expand::npages, disk_volume_header::nsect_total, NULL, NULL_OFFSET, pgbuf_get_lsa(), PGBUF_LATCH_WRITE, PGBUF_PAGE_MODIFY_ARGS, PGBUF_PAGE_MODIFY_MSG, pgbuf_set_dirty_and_free, RVDK_EXPAND_VOLUME, RVDK_VOLHEAD_EXPAND, disk_volume_header::type, disk_volume_header::volid, and disk_recv_data_volume_expand::volid.
Referenced by disk_extend().
int disk_volume_header_end_scan | ( | THREAD_ENTRY * | thread_p, |
void ** | ptr | ||
) |
Definition at line 3080 of file disk_manager.c.
References db_private_free_and_init, and NO_ERROR.
Referenced by showstmt_scan_init().
SCAN_CODE disk_volume_header_next_scan | ( | THREAD_ENTRY * | thread_p, |
int | cursor, | ||
DB_VALUE ** | out_values, | ||
int | out_cnt, | ||
void * | ptr | ||
) |
Definition at line 2948 of file disk_manager.c.
References assert, ASSERT_ERROR, disk_volume_header::boot_hfid, disk_volume_header::chkpt_lsa, disk_volume_header::db_charset, disk_volume_header::db_creation, db_localdatetime(), db_make_datetime(), db_make_int(), db_make_string(), db_make_string_copy(), disk_get_volheader, disk_purpose_to_string(), disk_type_to_string(), error(), hfid_to_string(), disk_volume_header::hint_allocsect, disk_volume_header::iopagesize, lsa_to_string(), disk_volume_header::magic, disk_volume_header::next_volid, NO_ERROR, disk_cache_volinfo::nsect_free, disk_volume_header::nsect_max, disk_volume_header::nsect_total, NULL, disk_volume_header::offset_to_next_vol_fullname, disk_volume_header::offset_to_vol_fullname, disk_volume_header::offset_to_vol_remarks, PGBUF_LATCH_READ, pgbuf_unfix, disk_volume_header::purpose, S_END, S_ERROR, S_SUCCESS, disk_volume_header::sect_npgs, disk_volume_header::stab_first_page, disk_volume_header::stab_npages, disk_volume_header::sys_lastpage, disk_volume_header::type, disk_volume_header::var_fields, disk_cache::vols, and disk_vol_header_context::volume_id.
Referenced by showstmt_scan_init().
STATIC_INLINE void disk_volume_header_set_stab | ( | DB_VOLPURPOSE | vol_purpose, |
DISK_VOLUME_HEADER * | volheader | ||
) |
Definition at line 3130 of file disk_manager.c.
References CEIL_PTVDIV, DISK_STAB_PAGE_BIT_COUNT, DISK_VOLHEADER_PAGE, disk_volume_header::nsect_max, disk_volume_header::stab_first_page, disk_volume_header::stab_npages, STATIC_INLINE, and disk_volume_header::sys_lastpage.
Referenced by disk_format().
int disk_volume_header_start_scan | ( | THREAD_ENTRY * | thread_p, |
int | type, | ||
DB_VALUE ** | arg_values, | ||
int | arg_cnt, | ||
void ** | ptr | ||
) |
Definition at line 2896 of file disk_manager.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR_AND_SET, db_get_int(), DB_INT16_MAX, db_private_alloc, db_private_free, DB_TYPE_INTEGER, DB_VALUE_TYPE, ER_DIAG_VOLID_NOT_EXIST, ER_ERROR_SEVERITY, er_set(), error(), NO_ERROR, NULL, disk_vol_header_context::volume_id, and xdisk_is_volume_exist().
Referenced by showstmt_scan_init().
INT32 xdisk_get_free_numpages | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid | ||
) |
Definition at line 5659 of file disk_manager.c.
References assert, DISK_SECTS_NPAGES, LOG_MAX_DBVOLID, disk_cache_volinfo::nsect_free, NULL, disk_cache::nvols_temp, and disk_cache::vols.
Referenced by disk_get_free_numpages(), and sdk_freepgs().
char* xdisk_get_fullname | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid, | ||
char * | vol_fullname | ||
) |
Definition at line 5723 of file disk_manager.c.
References ARG_FILE_LINE, ASSERT_ERROR, DB_MAX_PATH_LENGTH, disk_get_volheader, disk_verify_volume_header(), disk_vhdr_get_vol_fullname(), ER_ERROR_SEVERITY, ER_OBJ_INVALID_ARGUMENTS, er_set(), NO_ERROR, NULL, PGBUF_LATCH_READ, and pgbuf_unfix_and_init.
Referenced by boot_mount(), disk_get_fullname(), log_recreate(), and sdk_vlabel().
DISK_VOLPURPOSE xdisk_get_purpose | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid | ||
) |
Definition at line 5516 of file disk_manager.c.
References assert, DB_PERMANENT_DATA_PURPOSE, disk_get_volpurpose(), disk_is_valid_volid(), DISK_UNKNOWN_PURPOSE, LOG_DBFIRST_VOLID, and NULL.
Referenced by logpb_check_and_reset_temp_lsa(), and pgbuf_is_temporary_volume().
int xdisk_get_purpose_and_space_info | ( | THREAD_ENTRY * | thread_p, |
VOLID | volid, | ||
DISK_VOLPURPOSE * | vol_purpose, | ||
DISK_VOLUME_SPACE_INFO * | space_info | ||
) |
Definition at line 5552 of file disk_manager.c.
References assert, ASSERT_ERROR, disk_get_volheader, LOG_MAX_DBVOLID, disk_volume_space_info::n_free_sects, disk_volume_space_info::n_max_sects, disk_volume_space_info::n_total_sects, NO_ERROR, disk_cache_volinfo::nsect_free, disk_volume_header::nsect_max, disk_volume_header::nsect_total, NULL, NULL_VOLID, disk_cache::nvols_temp, PGBUF_LATCH_READ, pgbuf_unfix_and_init, disk_cache_volinfo::purpose, disk_volume_header::volid, and disk_cache::vols.
Referenced by log_recreate().
INT16 xdisk_get_purpose_and_sys_lastpage | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid, | ||
DISK_VOLPURPOSE * | vol_purpose, | ||
INT32 * | sys_lastpage | ||
) |
Definition at line 5600 of file disk_manager.c.
References ASSERT_ERROR, disk_get_volheader, disk_verify_volume_header(), NO_ERROR, NULL, NULL_VOLID, PGBUF_LATCH_READ, pgbuf_unfix_and_init, disk_volume_header::purpose, disk_volume_header::sys_lastpage, and disk_volume_header::volid.
Referenced by logpb_backup_for_volume().
char* xdisk_get_remarks | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid | ||
) |
Definition at line 5758 of file disk_manager.c.
References ASSERT_ERROR, disk_get_volheader, disk_vhdr_get_vol_remarks(), NO_ERROR, NULL, PGBUF_LATCH_READ, pgbuf_unfix_and_init, and strlen.
Referenced by disk_get_remarks(), and sdk_remarks().
INT32 xdisk_get_total_numpages | ( | THREAD_ENTRY * | thread_p, |
INT16 | volid | ||
) |
Definition at line 5629 of file disk_manager.c.
References ASSERT_ERROR, disk_get_volheader, DISK_SECTS_NPAGES, NO_ERROR, disk_volume_header::nsect_total, PGBUF_LATCH_READ, and pgbuf_unfix.
Referenced by disk_get_total_numpages(), fileio_backup_volume(), logpb_copy_volume(), sdk_totalpgs(), and xboot_emergency_patch().
bool xdisk_is_volume_exist | ( | THREAD_ENTRY * | thread_p, |
VOLID | volid | ||
) |
Definition at line 5675 of file disk_manager.c.
References disk_check_volume_exist(), disk_check_vol_info::exists, fileio_map_mounted(), disk_volume_header::volid, and disk_check_vol_info::volid.
Referenced by disk_volume_header_start_scan().
|
static |
Definition at line 481 of file disk_manager.c.
|
static |
Definition at line 206 of file disk_manager.c.
|
static |
Definition at line 308 of file disk_manager.c.
Referenced by disk_manager_init().
|
static |
Definition at line 208 of file disk_manager.c.
Referenced by disk_manager_init(), and disk_reserve_from_cache().