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>