#include <P_CacheDisk.h>
Inherits Continuation.
Public Member Functions | |
CacheDisk () | |
~CacheDisk () | |
int | open (bool clear) |
int | open (char *s, off_t blocks, off_t skip, int hw_sector_size, int fildes, bool clear) |
int | clearDisk () |
int | clearDone (int event, void *data) |
int | openStart (int event, void *data) |
int | openDone (int event, void *data) |
int | sync () |
int | syncDone (int event, void *data) |
DiskVolBlock * | create_volume (int number, off_t size, int scheme) |
int | delete_volume (int number) |
int | delete_all_volumes () |
void | update_header () |
DiskVol * | get_diskvol (int vol_number) |
Data Fields | |
DiskHeader * | header |
char * | path |
int | header_len |
AIOCallbackInternal | io |
off_t | len |
off_t | start |
off_t | skip |
off_t | num_usable_blocks |
int | hw_sector_size |
int | fd |
off_t | free_space |
off_t | wasted_space |
DiskVol ** | disk_vols |
DiskVol * | free_blocks |
int | num_errors |
int | cleared |
int | forced_volume_num |
Volume number for this disk. | |
ats_scoped_str | hash_base_string |
Base string for hash seed. |
Definition at line 88 of file P_CacheDisk.h.
CacheDisk::CacheDisk | ( | ) | [inline] |
Definition at line 111 of file P_CacheDisk.h.
CacheDisk::~CacheDisk | ( | ) |
Definition at line 74 of file CacheDisk.cc.
References ats_free(), disk_vols, DiskVol::dpb_queue, free_blocks, header, DiskHeader::num_volumes, path, and Queue< C, L >::pop().
int CacheDisk::clearDisk | ( | ) |
Definition at line 97 of file CacheDisk.cc.
References ink_aiocb::aio_buf, ink_aiocb::aio_nbytes, ink_aiocb::aio_offset, AIOCallback::aiocb, delete_all_volumes(), header, header_len, ink_aio_write(), io, skip, and AIOCallback::thread.
Referenced by open(), and openStart().
int CacheDisk::clearDone | ( | int | event, | |
void * | data | |||
) |
Definition at line 110 of file CacheDisk.cc.
References AIO_EVENT_DONE, ink_aiocb::aio_nbytes, AIOCallback::aio_result, AIOCallback::aiocb, EVENT_IMMEDIATE, ink_assert, io, openDone(), path, SET_DISK_BAD, SET_HANDLER, and Warning.
Referenced by open(), and openStart().
DiskVolBlock * CacheDisk::create_volume | ( | int | number, | |
off_t | size, | |||
int | scheme | |||
) |
Definition at line 204 of file CacheDisk.cc.
References DiskVolBlockQueue::b, DiskVol::disk, disk_vols, DiskVol::dpb_queue, Queue< C, L >::enqueue(), DiskVolBlock::free, free_blocks, free_space, DLL< C, L >::head, header, ink_assert, DiskVolBlock::len, MAX_VOL_SIZE, DiskVolBlockQueue::new_block, DiskHeader::num_diskvol_blks, DiskHeader::num_free, DiskHeader::num_used, DiskVol::num_volblocks, DiskHeader::num_volumes, DiskVolBlock::number, DiskVolBlock::offset, Queue< C, L >::remove(), DiskVol::size, STORE_BLOCK_SIZE, DiskVolBlock::type, VOL_BLOCK_SIZE, DiskHeader::vol_info, DiskVol::vol_number, and wasted_space.
Referenced by cplist_reconfigure(), create_volume(), and fillExclusiveDisks().
int CacheDisk::delete_all_volumes | ( | ) |
Definition at line 406 of file CacheDisk.cc.
References cleared, DiskVolBlock::free, header, len, DiskVolBlock::len, DiskHeader::magic, DiskHeader::num_blocks, DiskHeader::num_diskvol_blks, DiskHeader::num_free, num_usable_blocks, DiskHeader::num_used, DiskHeader::num_volumes, DiskVolBlock::offset, start, DiskVolBlock::type, update_header(), and DiskHeader::vol_info.
Referenced by clearDisk(), cplist_reconfigure(), create_config(), and fillExclusiveDisks().
int CacheDisk::delete_volume | ( | int | number | ) |
Definition at line 298 of file CacheDisk.cc.
References DiskVolBlockQueue::b, disk_vols, DiskVol::dpb_queue, Queue< C, L >::enqueue(), DiskVolBlock::free, free_blocks, free_space, header, DiskVolBlock::len, DiskHeader::num_free, DiskHeader::num_used, DiskVol::num_volblocks, DiskHeader::num_volumes, Queue< C, L >::remove(), DiskVol::size, and DiskVolBlock::type.
Referenced by cplist_update().
DiskVol * CacheDisk::get_diskvol | ( | int | vol_number | ) |
Definition at line 394 of file CacheDisk.cc.
References disk_vols, header, and DiskHeader::num_volumes.
Referenced by cplist_reconfigure(), create_volume(), and fillExclusiveDisks().
int CacheDisk::open | ( | char * | s, | |
off_t | blocks, | |||
off_t | skip, | |||
int | hw_sector_size, | |||
int | fildes, | |||
bool | clear | |||
) |
Definition at line 28 of file CacheDisk.cc.
References AIOCallback::action, ink_aiocb::aio_buf, ink_aiocb::aio_fildes, ink_aiocb::aio_nbytes, ink_aiocb::aio_offset, ink_aiocb::aio_reqprio, AIOCallback::aiocb, ats_malloc(), ats_memalign(), ats_strdup, clearDisk(), clearDone(), disk_vols, fd, header, header_len, hw_sector_size, ink_aio_read(), io, len, MIN_VOL_SIZE, num_usable_blocks, openStart(), path, ROUND_TO_STORE_BLOCK, SET_HANDLER, skip, start, STORE_BLOCK_SIZE, and AIOCallback::thread.
int CacheDisk::open | ( | bool | clear | ) |
Referenced by CacheProcessor::start_internal().
int CacheDisk::openDone | ( | int | event, | |
void * | data | |||
) |
Definition at line 165 of file CacheDisk.cc.
References cacheProcessor, CacheProcessor::diskInitialized(), ET_CALL, eventProcessor, HRTIME_MSECONDS, EventProcessor::schedule_in(), SET_HANDLER, CacheProcessor::start_done, and syncDone().
Referenced by clearDone(), and openStart().
int CacheDisk::openStart | ( | int | event, | |
void * | data | |||
) |
Definition at line 125 of file CacheDisk.cc.
References AIO_EVENT_DONE, ink_aiocb::aio_nbytes, AIOCallback::aio_result, AIOCallback::aiocb, clearDisk(), clearDone(), cleared, DISK_HEADER_MAGIC, EVENT_IMMEDIATE, header, ink_assert, io, len, DiskHeader::magic, DiskHeader::num_blocks, openDone(), path, SET_DISK_BAD, SET_HANDLER, skip, update_header(), and Warning.
Referenced by open().
int CacheDisk::sync | ( | ) |
Definition at line 178 of file CacheDisk.cc.
References ink_aiocb::aio_buf, ink_aiocb::aio_nbytes, ink_aiocb::aio_offset, AIOCallback::aiocb, header, header_len, ink_aio_write(), io, skip, and AIOCallback::thread.
Referenced by CacheProcessor::diskInitialized().
int CacheDisk::syncDone | ( | int | event, | |
void * | data | |||
) |
Definition at line 189 of file CacheDisk.cc.
References AIO_EVENT_DONE, ink_aiocb::aio_nbytes, AIOCallback::aio_result, AIOCallback::aiocb, ink_assert, io, path, SET_DISK_BAD, and Warning.
Referenced by openDone().
void CacheDisk::update_header | ( | ) |
Definition at line 333 of file CacheDisk.cc.
References DiskVolBlockQueue::b, DiskVol::disk, disk_vols, DiskVol::dpb_queue, Queue< C, L >::enqueue(), DiskVolBlock::free, free_blocks, free_space, header, ink_assert, DiskVolBlock::len, DiskHeader::num_diskvol_blks, DiskVol::num_volblocks, DiskHeader::num_volumes, DiskVolBlock::number, Queue< C, L >::pop(), DiskVol::size, DiskHeader::vol_info, and DiskVol::vol_number.
Referenced by delete_all_volumes(), and openStart().
Definition at line 105 of file P_CacheDisk.h.
Referenced by create_config(), delete_all_volumes(), Cache::open(), and openStart().
Definition at line 102 of file P_CacheDisk.h.
Referenced by cplist_init(), cplist_reconfigure(), create_volume(), delete_volume(), CacheProcessor::diskInitialized(), execute_and_verify(), get_diskvol(), open(), update_header(), and ~CacheDisk().
int CacheDisk::fd |
Definition at line 99 of file P_CacheDisk.h.
Referenced by AIO_Callback_handler::handle_disk_failure(), CacheProcessor::mark_storage_offline(), open(), Cache::open(), and CacheProcessor::start_internal().
Volume number for this disk.
Definition at line 108 of file P_CacheDisk.h.
Referenced by cplist_update(), and CacheProcessor::start_internal().
Definition at line 103 of file P_CacheDisk.h.
Referenced by create_volume(), delete_volume(), update_header(), and ~CacheDisk().
off_t CacheDisk::free_space |
Definition at line 100 of file P_CacheDisk.h.
Referenced by cplist_reconfigure(), create_volume(), delete_volume(), CacheProcessor::diskInitialized(), execute_and_verify(), and update_header().
ats_scoped_str CacheDisk::hash_base_string |
Base string for hash seed.
Definition at line 109 of file P_CacheDisk.h.
Referenced by Vol::init(), and CacheProcessor::start_internal().
Definition at line 90 of file P_CacheDisk.h.
Referenced by clearDisk(), cplist_init(), create_volume(), delete_all_volumes(), delete_volume(), CacheProcessor::diskInitialized(), execute_and_verify(), get_diskvol(), open(), openStart(), sync(), update_header(), and ~CacheDisk().
Definition at line 92 of file P_CacheDisk.h.
Referenced by clearDisk(), open(), and sync().
Definition at line 98 of file P_CacheDisk.h.
Referenced by open(), CacheProcessor::start_internal(), and vol_clear_init().
Definition at line 93 of file P_CacheDisk.h.
Referenced by clearDisk(), clearDone(), open(), openStart(), CacheProcessor::start_internal(), sync(), and syncDone().
off_t CacheDisk::len |
Definition at line 94 of file P_CacheDisk.h.
Referenced by delete_all_volumes(), open(), openStart(), and CacheProcessor::start_internal().
Definition at line 104 of file P_CacheDisk.h.
Referenced by cache_disk_replacement_stability(), and AIO_Callback_handler::handle_disk_failure().
Definition at line 97 of file P_CacheDisk.h.
Referenced by create_config(), delete_all_volumes(), fillExclusiveDisks(), and open().
char* CacheDisk::path |
Definition at line 91 of file P_CacheDisk.h.
Referenced by clearDone(), AIO_Callback_handler::handle_disk_failure(), open(), Cache::open(), openStart(), CacheProcessor::start_internal(), syncDone(), and ~CacheDisk().
off_t CacheDisk::skip |
Definition at line 96 of file P_CacheDisk.h.
Referenced by clearDisk(), open(), openStart(), CacheProcessor::start_internal(), and sync().
off_t CacheDisk::start |
Definition at line 95 of file P_CacheDisk.h.
Referenced by delete_all_volumes(), open(), and CacheProcessor::start_internal().
off_t CacheDisk::wasted_space |
Definition at line 101 of file P_CacheDisk.h.
Referenced by create_volume().