]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: Fix BlueStore::_do_remove
authorAdam Kupczyk <akupczyk@ibm.com>
Fri, 24 Mar 2023 20:49:30 +0000 (20:49 +0000)
committerAdam Kupczyk <akupczyk@ibm.com>
Thu, 11 May 2023 06:52:45 +0000 (06:52 +0000)
commit9fe92069241c2ada3b65294e679fac59264495f7
treee71552aaf352c7973581fc8192cc7436ab84bab6
parentb04e96953a36880eb6ec559ba31cae7307a6a6d1
os/bluestore: Fix BlueStore::_do_remove

Fix blobs having the same empty shared blob.

Each blob on creation gets its own unique (empty) SharedBlob object.
ExtentMap::dup() sometimes merges blobs together, so 2 different blobs
get the same SharedBlob object.

Function _do_remove() tries to convert shared blobs into regular ones.
If it succeeds we could get 2 blobs having the same EMPTY SharedBlob object.

The solution is to create detached SharedBlob if necessary.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
src/os/bluestore/BlueStore.cc