]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
os/bluestore: _do_remove: dirty shard individually as each blob is unshared 16822/head
authorSage Weil <sage@redhat.com>
Sun, 6 Aug 2017 14:31:49 +0000 (10:31 -0400)
committerSage Weil <sage@redhat.com>
Sun, 6 Aug 2017 14:32:01 +0000 (10:32 -0400)
commitc275379348af9fb41452378b51d2ca3cf5d078bd
tree8d6abe8e67a06ea654f539f6dc8810adb3ef6005
parent95a02883687bfbf385796a7dd8c6e046f2be4bb4
os/bluestore: _do_remove: dirty shard individually as each blob is unshared

Two problems with old code:

1- dirty_shard range is inclusive, so we might dirty the shard after b_end
2- we might unshare blobs in two shards with an unloaded shard in between,
which would mean dirtying a shard that isn't loaded.

Fix by ensuring the shard for each unshared blob is dirty individually.

Fixes: http://tracker.ceph.com/issues/20849
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc