From: Sage Weil Date: Wed, 11 May 2016 19:30:14 +0000 (-0400) Subject: os/bluestore: pass txc to _do_wal_op X-Git-Tag: v11.0.0~359^2~95 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d7ab766dd6ad3bd30dec90952367fa103e06e651;p=ceph.git os/bluestore: pass txc to _do_wal_op Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index b0582363ed4c..d102d18440a3 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -4229,7 +4229,7 @@ int BlueStore::_wal_apply(TransContext *txc) for (list::iterator p = wt.ops.begin(); p != wt.ops.end(); ++p, ++q) { - int r = _do_wal_op(*p, &txc->ioc); + int r = _do_wal_op(txc, *p); assert(r == 0); } @@ -4251,7 +4251,7 @@ int BlueStore::_wal_finish(TransContext *txc) return 0; } -int BlueStore::_do_wal_op(bluestore_wal_op_t& wo, IOContext *ioc) +int BlueStore::_do_wal_op(TransContext *txc, bluestore_wal_op_t& wo) { const uint64_t block_size = bdev->get_block_size(); const uint64_t block_mask = ~(block_size - 1); @@ -4283,7 +4283,7 @@ int BlueStore::_do_wal_op(bluestore_wal_op_t& wo, IOContext *ioc) dout(20) << __func__ << " reading initial partial block 0x" << std::hex << src_offset << "~0x" << block_size << std::dec << dendl; - r = bdev->read(src_offset, block_size, &first, ioc, true); + r = bdev->read(src_offset, block_size, &first, &txc->ioc, true); assert(r == 0); bufferlist t; t.substr_of(first, 0, first_len); @@ -4303,7 +4303,7 @@ int BlueStore::_do_wal_op(bluestore_wal_op_t& wo, IOContext *ioc) dout(20) << __func__ << " reading trailing partial block 0x" << std::hex << last_offset << "~0x" << block_size << std::dec << dendl; - r = bdev->read(last_offset, block_size, &last, ioc, true); + r = bdev->read(last_offset, block_size, &last, &txc->ioc, true); assert(r == 0); } bufferlist t; @@ -4312,7 +4312,7 @@ int BlueStore::_do_wal_op(bluestore_wal_op_t& wo, IOContext *ioc) bl.claim_append(t); } assert((bl.length() & ~block_mask) == 0); - r = bdev->aio_write(offset, bl, ioc, true); + r = bdev->aio_write(offset, bl, &txc->ioc, true); assert(r == 0); } break; @@ -4326,11 +4326,11 @@ int BlueStore::_do_wal_op(bluestore_wal_op_t& wo, IOContext *ioc) assert(wo.extent.length == wo.src_extent.length); assert((wo.src_extent.offset & ~block_mask) == 0); bufferlist bl; - r = bdev->read(wo.src_extent.offset, wo.src_extent.length, &bl, ioc, + r = bdev->read(wo.src_extent.offset, wo.src_extent.length, &bl, &txc->ioc, true); assert(r == 0); assert(bl.length() == wo.extent.length); - r = bdev->aio_write(wo.extent.offset, bl, ioc, true); + r = bdev->aio_write(wo.extent.offset, bl, &txc->ioc, true); assert(r == 0); } break; @@ -4347,11 +4347,11 @@ int BlueStore::_do_wal_op(bluestore_wal_op_t& wo, IOContext *ioc) dout(20) << __func__ << " reading initial partial block 0x" << std::hex << first_offset << "~0x" << block_size << std::dec << dendl; - r = bdev->read(first_offset, block_size, &first, ioc, true); + r = bdev->read(first_offset, block_size, &first, &txc->ioc, true); assert(r == 0); size_t z_len = MIN(block_size - first_len, length); memset(first.c_str() + first_len, 0, z_len); - r = bdev->aio_write(first_offset, first, ioc, true); + r = bdev->aio_write(first_offset, first, &txc->ioc, true); assert(r == 0); offset += block_size - first_len; length -= z_len; @@ -4361,7 +4361,7 @@ int BlueStore::_do_wal_op(bluestore_wal_op_t& wo, IOContext *ioc) uint64_t middle_len = length & block_mask; dout(20) << __func__ << " zero 0x" << std::hex << offset << "~0x" << length << std::dec << dendl; - r = bdev->aio_zero(offset, middle_len, ioc); + r = bdev->aio_zero(offset, middle_len, &txc->ioc); assert(r == 0); offset += middle_len; length -= middle_len; @@ -4372,10 +4372,10 @@ int BlueStore::_do_wal_op(bluestore_wal_op_t& wo, IOContext *ioc) bufferlist last; dout(20) << __func__ << " reading trailing partial block 0x" << std::hex << offset << "~0x" << block_size << std::dec << dendl; - r = bdev->read(offset, block_size, &last, ioc, true); + r = bdev->read(offset, block_size, &last, &txc->ioc, true); assert(r == 0); memset(last.c_str(), 0, length); - r = bdev->aio_write(offset, last, ioc, true); + r = bdev->aio_write(offset, last, &txc->ioc, true); assert(r == 0); } } diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index 980587e16bf7..15a40e3adc8b 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -676,7 +676,7 @@ private: bluestore_wal_op_t *_get_wal_op(TransContext *txc, OnodeRef o); int _wal_apply(TransContext *txc); int _wal_finish(TransContext *txc); - int _do_wal_op(bluestore_wal_op_t& wo, IOContext *ioc); + int _do_wal_op(TransContext *txc, bluestore_wal_op_t& wo); int _wal_replay(); // for fsck