From: Igor Fedotov Date: Tue, 8 Oct 2019 20:39:20 +0000 (+0300) Subject: os/bluestore: provide access to bluefs allocated extents X-Git-Tag: v16.1.0~1536^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=52045df3c6fac4d6aca66788881e1cfe14d8e951;p=ceph.git os/bluestore: provide access to bluefs allocated extents Signed-off-by: Igor Fedotov --- diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc index 05352ca112c..eff7ae62c19 100644 --- a/src/os/bluestore/BlueFS.cc +++ b/src/os/bluestore/BlueFS.cc @@ -480,7 +480,17 @@ int BlueFS::get_block_extents(unsigned id, interval_set *extents) dout(10) << __func__ << " bdev " << id << dendl; if (id >= block_all.size()) return -EINVAL; - *extents = block_all[id]; + if (alloc[id] && alloc[id] == shared_bdev_alloc) { + for (auto& p : file_map) { + for (auto& q : p.second->fnode.extents) { + if (alloc[q.bdev] == shared_bdev_alloc) { + extents->insert(q.offset, q.length); + } + } + } + } else { + *extents = block_all[id]; + } return 0; }