diff --git a/blockstore.h b/blockstore.h index 0dd85935..0adc19d0 100644 --- a/blockstore.h +++ b/blockstore.h @@ -266,10 +266,12 @@ class blockstore std::list submit_queue; // FIXME: funny thing is that vector is better here std::vector unsynced_big_writes, unsynced_small_writes; std::list in_progress_syncs; // ...and probably here, too - uint64_t block_count; allocator *data_alloc = NULL; uint8_t *zero_object; + uint64_t block_count; + uint32_t block_order, block_size; + int meta_fd; int data_fd; @@ -359,7 +361,10 @@ public: // Submission void enqueue_op(blockstore_operation *op); - // FIXME public morozov + // Unstable writes are added here (map of object_id -> version) std::map unstable_writes; - uint32_t block_order, block_size; + + inline uint32_t get_block_size() { return block_size; } + inline uint32_t get_block_order() { return block_order; } + inline uint64_t get_block_count() { return block_count; } }; diff --git a/fio_engine.cpp b/fio_engine.cpp index a41c8d73..16ec5ca1 100644 --- a/fio_engine.cpp +++ b/fio_engine.cpp @@ -178,7 +178,7 @@ static enum fio_q_status bs_queue(struct thread_data *td, struct io_u *io) io->engine_data = bsd; if (io->ddir == DDIR_WRITE || io->ddir == DDIR_READ) - assert(io->xfer_buflen <= bsd->bs->block_size); + assert(io->xfer_buflen <= bsd->bs->get_block_size()); blockstore_operation *op = new blockstore_operation; op->callback = NULL; @@ -190,9 +190,9 @@ static enum fio_q_status bs_queue(struct thread_data *td, struct io_u *io) op->buf = io->xfer_buf; op->oid = { .inode = 1, - .stripe = io->offset >> bsd->bs->block_order, + .stripe = io->offset >> bsd->bs->get_block_order(), }; - op->offset = io->offset % bsd->bs->block_size; + op->offset = io->offset % bsd->bs->get_block_size(); op->len = io->xfer_buflen; op->callback = [io, n](blockstore_operation *op) { @@ -211,9 +211,9 @@ static enum fio_q_status bs_queue(struct thread_data *td, struct io_u *io) op->buf = io->xfer_buf; op->oid = { .inode = 1, - .stripe = io->offset >> bsd->bs->block_order, + .stripe = io->offset >> bsd->bs->get_block_order(), }; - op->offset = io->offset % bsd->bs->block_size; + op->offset = io->offset % bsd->bs->get_block_size(); op->len = io->xfer_buflen; op->callback = [io, n](blockstore_operation *op) {