]>
git.apps.os.sepia.ceph.com Git - ceph.git/log
Sage Weil [Thu, 19 May 2016 20:29:19 +0000 (16:29 -0400)]
os/bluestore: _dump_onode crcs in hex
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 16:54:39 +0000 (12:54 -0400)]
os/bluestore: remove obsolete tail cache
The buffer cache will cover this in a much more general way.
Signed-off-by: Sage Weil <sage@redhat.com>
Igor Fedotov [Thu, 19 May 2016 14:08:41 +0000 (17:08 +0300)]
os/bluestore: Fixes improper length calculation in BufferSpace::read + adds simplified test case to highlight an issue for append to existing blob
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Sage Weil [Thu, 19 May 2016 16:12:17 +0000 (12:12 -0400)]
os/bluestore: drop min_alloc_size locals
We have this in the class, now.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 20 May 2016 13:09:35 +0000 (09:09 -0400)]
os/bluestore: fix min_alloc_size global
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 16:00:08 +0000 (12:00 -0400)]
os/bluestore: release partial extents
Use the blob put_ref helper so that we can deallocate blobs partially
(instead of always waiting until they are completely unused).
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 15:58:54 +0000 (11:58 -0400)]
os/bluestore: only write into a blob region that is allocated
We're only worried about direct writes and wal overwrites; the other write
paths are to freshly allocated blobs.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 15:57:43 +0000 (11:57 -0400)]
os/bluestore/bluestore_types: blob_t: add tracking for released extents
We reference count which parts of the blob are used (by lextents), but
currently we only release our space back to the system when all references
go away. That is a problem if the blob is large (say, 4MB), and we, say,
truncate off most (but not all) of it.
Unfortunately, we can't simply deallocate anything that doesn't have a
reference, because the logical refs are on byte boundaries, and allocation
happens in larger units (min_alloc_size). A one byte logical punch_hole
might be responsible for the release of a larger block of storage.
To resolve this, we keep track of which portions of the blob have been
released by poisoning the offset in the extents vector. We expect that
this vector will be almost always short, so we do not bother with a
indexed structure, since iterating a blob offset to determine if it is
still allocated is likely faster.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 15:13:36 +0000 (11:13 -0400)]
os/bluestore/bluestore_types: add poison offset to pextent_t
This is a "magic" offset that we can use to indicate an invalid extent
(vs, say, an extent at offset 0 that might clobber real data if it were
used).
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 12:52:23 +0000 (08:52 -0400)]
os/bluestore: remove dead _txc_release
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 12:47:44 +0000 (08:47 -0400)]
os/bluestore: only direct write into unused blob space
We can only do a direct write into an already-allocated blob once, if that
range hasn't yet been used. Once it has been used, it is much to complex
to keep track of when all references to it have committed to disk before
reusing it, so we don't try to handle that case at all.
Since the range has never been used, we can assert that there are no
references to it.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 12:45:00 +0000 (08:45 -0400)]
os/bluestore: mark used range on partial blob writes
- writing into unreferenced blob space
- wal blob writes
both need to update the blob used map. The full blob writes generates
blobs that are always full, so no change is needed there. New partial
blob creations need to indicate which parts aren't yet used.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 12:43:49 +0000 (08:43 -0400)]
os/bluestore/bluestore_types: add blob_t unused
Keep track of which ranges of this blob have *never* been used. We do
this as a negative so that the common case of a fully-written blob is an
empty set.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 11:55:03 +0000 (07:55 -0400)]
unittest_bluestore_types: benchmark different csum methods
crc32c wins on my laptop.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 11:40:33 +0000 (07:40 -0400)]
unittest_bluestore_types: run csum tests on all algorithms
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 11:40:13 +0000 (07:40 -0400)]
os/bluestore/bluestore_types: blob_t: add xxhash64
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 11:19:36 +0000 (07:19 -0400)]
common/Checksummer: add xxhash64
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 10:55:43 +0000 (06:55 -0400)]
os/bluestore: drop old Checksummer
blob_t uses it directly via the static methods.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 10:53:29 +0000 (06:53 -0400)]
os/bluestore: use blob_t csum methods
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 10:51:09 +0000 (06:51 -0400)]
os/bluestore/bluestore_types: simpler {calc,verify}_csum methods
This keeps the CSUM_* definitions local to blob_t, and avoids passing
arguments around.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 10:25:23 +0000 (06:25 -0400)]
os/bluestore: defer csum calcuations sometimes
When we are doing a partial chunk overwrite, we need to defer the csum_data
update. Otherwise, another write in the same transaction might need to
read part of the chunk, not find the data in the buffer cache, read it
from disk, and fail the csum check.
This patch defers the calculation until after we've build the transaction
and are about to commit to the kv store.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 19 May 2016 10:25:43 +0000 (06:25 -0400)]
doc/dev/bluestore: update based on Igor's feedback
Signed-off-by: Sage Weil <sage@redhat.com>
Igor Fedotov [Tue, 17 May 2016 15:22:15 +0000 (18:22 +0300)]
os/bluestore: Fixes some issues when using Buffer Cache from _do_read and improves test coverage
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Tue, 17 May 2016 14:58:11 +0000 (17:58 +0300)]
os/bluestore: Fixes invalid assert in Buffer::truncate
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Mon, 16 May 2016 17:55:55 +0000 (20:55 +0300)]
test/objectstore: Adds trivial test case to verify buffer cache use in bluestore
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Mon, 16 May 2016 16:53:37 +0000 (19:53 +0300)]
Adds cached buffer processing for _do_read
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Sage Weil [Thu, 19 May 2016 10:23:39 +0000 (06:23 -0400)]
os/bluestore: add a very simple (incomplete) buffer cache
Attach it to each onode.
There is no trimming yet.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 16 May 2016 00:30:44 +0000 (20:30 -0400)]
os/bluestore: make tail cache a bit smarter
This is really a stop-gap. Since we are doing reads in the pre-commit
write path, we need to have some sort of buffer cache so that a sequence
of writes in the same transaction can remain coherent (the second write
must "read" the first write in order to fill out the chunk).
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 16 May 2016 00:25:54 +0000 (20:25 -0400)]
os/bluestore: dump tail_bl state in _dump_onode
Signed-off-by: Sage Weil <sage@redhat.com>
Igor Fedotov [Mon, 16 May 2016 11:27:24 +0000 (14:27 +0300)]
os/bluestore: Adds lacking methods in bluestore_compression_header_t to fix encoder test build
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Fri, 13 May 2016 15:18:12 +0000 (18:18 +0300)]
os/bluestore: add decompressor call to read path
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Sat, 14 May 2016 12:53:59 +0000 (08:53 -0400)]
os/bluestore/bluestore_types: add bluestore_compression_header_t
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Fri, 13 May 2016 15:16:47 +0000 (18:16 +0300)]
compressor: Refactor to allow bufferlist::iterator as an input
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Sage Weil [Sat, 14 May 2016 12:48:47 +0000 (08:48 -0400)]
os/bluestore: new write path
- simplified wal_op_t. we still have overlays in there, although that
might need to get removed soon too.
- init_csum cleanup
- totally new write path
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:37:16 +0000 (08:37 -0400)]
os/bluestore: verify blob ref_maps during fsck
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:40:54 +0000 (08:40 -0400)]
os/bluestore: return EIO on csum verification error
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:39:45 +0000 (08:39 -0400)]
os/bluestore: simplify _verify_csum
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:39:34 +0000 (08:39 -0400)]
os/bluestore: cleanup _read_extent_sparse
Signed-off-by: Sage Weil <sage@redhat.com>
Igor Fedotov [Sat, 14 May 2016 12:45:47 +0000 (08:45 -0400)]
os/bluetores: fix checksum verification
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Thu, 12 May 2016 13:26:10 +0000 (16:26 +0300)]
os/bluestore: read patch code cleanup
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Igor Fedotov [Thu, 12 May 2016 21:48:59 +0000 (17:48 -0400)]
os/bluestore: replace _do_read with ExtentManager version
Replaces _do_read with he corresponding code from ExtentManager to support csum verification & decompression.
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Sage Weil [Sat, 14 May 2016 12:23:15 +0000 (08:23 -0400)]
doc/dev/bluestore: write path notes
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 13 May 2016 21:20:44 +0000 (17:20 -0400)]
ceph_test_objectstore: new test SmallBlockWrites
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 13 May 2016 21:41:17 +0000 (17:41 -0400)]
ceph_test_objectstore: add BigWriteBigZero test
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 13 May 2016 16:51:28 +0000 (12:51 -0400)]
ceph_test_objectstore: expand SimpleObjectTest a bit
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 12 May 2016 17:31:09 +0000 (13:31 -0400)]
os/bluestore: define min_alloc_size globally
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 12 May 2016 17:30:25 +0000 (13:30 -0400)]
os/bluestore: define block_size, block_mask, block_order globally
These don't change, no need to declare them all over the place.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 12 May 2016 17:28:09 +0000 (13:28 -0400)]
os/bluestore: change block_size -> chunk_size for _pad_zero* methods
The granularity is not the same as block_size.. depends on what the caller
wants. Use a more generic name.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 19:45:45 +0000 (15:45 -0400)]
os/bluestore: use _txc_finalize_kv for wal allocation updates
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 19:30:14 +0000 (15:30 -0400)]
os/bluestore: pass txc to _do_wal_op
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 19:11:13 +0000 (15:11 -0400)]
os/bluestore: rename _txc_update_fm -> _txc_finalize_kv
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 19:06:21 +0000 (15:06 -0400)]
os/bluestore/BlueStore: break _txc_finalize into _txc_write_nodes
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:32:22 +0000 (08:32 -0400)]
os/bluestore: dump csums in _dump_onode/bnode
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 20:21:48 +0000 (16:21 -0400)]
os/bluestore: _dump_bnode
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:31:24 +0000 (08:31 -0400)]
os/bluestore/bluestore_types: nicer operator<< for blob_t
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 13 May 2016 21:07:10 +0000 (17:07 -0400)]
os/bluestore/bluestore_types: add onode_t::compress_extent_map()
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Sat, 14 May 2016 12:29:42 +0000 (08:29 -0400)]
os/bluestore/bluestore_types: blob_t convenience methods
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 20:23:50 +0000 (16:23 -0400)]
os/bluestore/bluestore_types: FLAG_IMMUTABLE -> FLAG_MUTABLE
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 20:24:36 +0000 (16:24 -0400)]
os/bluestore/bluestore_types: blob_t::is_unreferenced() method
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 10 May 2016 18:49:15 +0000 (14:49 -0400)]
os/bluestore/bluestore_types: add blob_t::has_any_lextents
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 10 May 2016 18:48:40 +0000 (14:48 -0400)]
os/bluestore/bluestore_types: test {find,seek}_lextents
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 10 May 2016 17:26:30 +0000 (13:26 -0400)]
os/bluestore/bluestore_types: blob_t csum additions
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 10 May 2016 00:34:53 +0000 (20:34 -0400)]
os/bluestore: blob_t::init_csum() helper
Set up the checksum parameters and size csum_data appropriately.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 20:26:15 +0000 (16:26 -0400)]
os/bluestore: track csum config options
Use global csum_type member to drive new checksum calcuations.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 10 May 2016 00:34:26 +0000 (20:34 -0400)]
os/bluestore: instantiate a Checksummer
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 10 May 2016 00:34:13 +0000 (20:34 -0400)]
os/bluestore: prototype Checksummer
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 21:36:01 +0000 (17:36 -0400)]
buffer: add buffer::list::iterator::get_ptr_and_advance
Efficiently iterate over buffers in a list, via an iterator.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 9 May 2016 21:26:25 +0000 (17:26 -0400)]
os/bluestore/bluestore_types: extent_ref_map_t::intersects
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 9 May 2016 21:21:30 +0000 (17:21 -0400)]
os/bluestore/bluestore_types: change extent_ref_map_t
- no more add, or weird add vs get assumptions
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 11 May 2016 20:23:23 +0000 (16:23 -0400)]
os/bluestore/bluestore_types: drop num_refs from blob_t
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 9 May 2016 19:27:00 +0000 (15:27 -0400)]
os/bluestore/bluestore_types: onode_t::punch_hole()
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 9 May 2016 16:59:19 +0000 (12:59 -0400)]
os/bluestore: disable clone cow until it works again
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Mon, 9 May 2016 14:36:14 +0000 (10:36 -0400)]
os/bluestore: fix bad iterator deref in _do_zero_tail_extent
The extent_map may be empty, or not contain anything at this offset.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:41:54 +0000 (14:41 -0400)]
os/bluestore: rename enode -> bnode
We're not refcounting extents anymore; we're storing shared blobs.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:36:33 +0000 (14:36 -0400)]
os/bluestore: use hex almost everywhere
It's like going metric, but even better!
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:36:04 +0000 (14:36 -0400)]
os/bluestore: remove block_map from onode
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:35:49 +0000 (14:35 -0400)]
os/bluestore: convert io path to extent_map
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:30:45 +0000 (14:30 -0400)]
os/bluestore: add get_blob_ptr helpers
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Thu, 5 May 2016 17:04:06 +0000 (13:04 -0400)]
os/bluestore/KernelDevice: print extents in hex
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:01:06 +0000 (14:01 -0400)]
ceph_test_objectstore: show start and end offsets for buffer mismatch
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 3 May 2016 20:22:56 +0000 (16:22 -0400)]
os/bluestore: add blob_map to enode
We'll remove the old ref_map once the users go away.
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 3 May 2016 19:43:33 +0000 (15:43 -0400)]
os/bluestore: pass c to _do_read
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 3 May 2016 19:07:50 +0000 (15:07 -0400)]
os/bluestore: add blob_map to onode_t
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 3 May 2016 20:22:24 +0000 (16:22 -0400)]
os/bluestore: use pextent_t for releases
Trying to remove the old extent_t
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 3 May 2016 18:25:07 +0000 (14:25 -0400)]
os/bluestore: use pextent for wal_op
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Wed, 4 May 2016 18:36:49 +0000 (14:36 -0400)]
os/bluestore: print extents in hex
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:27:41 +0000 (14:27 -0400)]
os/bluestore: fix blob operator<<
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Tue, 3 May 2016 20:21:48 +0000 (16:21 -0400)]
os/bluestore: keep an extent_ref_map for each blob
This lets us track which portions of a blob are still in use. In some
cases, we may be able to split the blob to deallocate a portion of it.
In other cases, we will want this information to know whether to
recompress the blob (or whatever).
Signed-off-by: Sage Weil <sage@redhat.com>
Sage Weil [Fri, 6 May 2016 18:25:30 +0000 (14:25 -0400)]
os/bluestore: add map and map_bl methods to blob
Signed-off-by: Sage Weil <sage@redhat.com>
Igor Fedotov [Tue, 3 May 2016 14:24:36 +0000 (10:24 -0400)]
os/bluestore: data structure to support compression/checksum verification. Read handler prototype implementation.
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Signed-off-by: Sage Weil <sage@redhat.com>
Casey Bodley [Wed, 1 Jun 2016 14:52:24 +0000 (10:52 -0400)]
Merge pull request #9183 from yehudasa/wip-rgw-sync-retry
rgw: sync retry
Reviewed-by: Casey Bodley <cbodley@redhat.com>
John Spray [Wed, 1 Jun 2016 14:37:19 +0000 (15:37 +0100)]
Merge pull request #9073 from ukernel/wip-posixacl-fix
client: fix setting empty default ACL
Reviewed-by: John Spray <john.spray@redhat.com>
Sage Weil [Wed, 1 Jun 2016 14:28:59 +0000 (10:28 -0400)]
Merge pull request #9422 from liewegas/wip-bluefs
os/bluestore/BlueFS: wait for aios on shutdown
Loic Dachary [Wed, 1 Jun 2016 13:39:10 +0000 (15:39 +0200)]
Merge pull request #9343 from dachary/wip-13522-ceph-disk
ceph-disk: workaround gperftool hang
Reviewed-by: Kefu Chai <kchai@redhat.com>
Sage Weil [Wed, 1 Jun 2016 13:14:01 +0000 (09:14 -0400)]
os/bluestore/BlueFS: wait for aios on shutdown
This fixes segv from unittest_bluefs.
Signed-off-by: Sage Weil <sage@redhat.com>
Loic Dachary [Thu, 26 May 2016 10:55:51 +0000 (12:55 +0200)]
ceph-disk: workaround gperftool hang
Temporary workaround: if ceph-osd --mkfs does not
complete within 5 minutes, assume it is blocked
because of https://github.com/gperftools/gperftools/issues/786
References http://tracker.ceph.com/issues/13522
Signed-off-by: Loic Dachary <loic@dachary.org>
Yan, Zheng [Wed, 1 Jun 2016 09:42:24 +0000 (17:42 +0800)]
qa/workunits/fs/misc: test for setting empty ACL
Signed-off-by: Yan, Zheng <zyan@redhat.com>
Yehuda Sadeh [Wed, 1 Jun 2016 09:10:20 +0000 (12:10 +0300)]
Merge pull request #9299 from cbodley/wip-rgw-vstart-valgrind
vstart: add --valgrind_rgw
Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
Mykola Golub [Wed, 1 Jun 2016 07:59:57 +0000 (10:59 +0300)]
Merge pull request #9375 from dillaman/wip-14937
rbd-mirror: replicate cloned images
Reviewed-by: Mykola Golub <mgolub@mirantis.com>
xiexingguo [Wed, 1 Jun 2016 07:46:06 +0000 (15:46 +0800)]
Merge pull request #9162 from xiexingguo/xxg-wip-fixbmap
os/bluestore: fix bmap allocator relevant issues
Reviewed-by: Ramesh Chander <Ramesh.Chander@sandisk.com>