From: Ramesh Chander Date: Fri, 12 Aug 2016 06:27:38 +0000 (-0700) Subject: batch is_allocated bit checks X-Git-Tag: ses5-milestone5~134^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=47c5fb00620869ff45c35c54aeff8e416d79c738;p=ceph.git batch is_allocated bit checks Signed-off-by: Ramesh Chander --- diff --git a/src/os/bluestore/BitAllocator.cc b/src/os/bluestore/BitAllocator.cc index c03f84be5ec9..63489038b4e7 100644 --- a/src/os/bluestore/BitAllocator.cc +++ b/src/os/bluestore/BitAllocator.cc @@ -143,14 +143,10 @@ bmap_t BmapEntry::atomic_fetch() return m_bits; } -bool BmapEntry::is_allocated(int64_t start_bit, int64_t num_bits) +bool BmapEntry::is_allocated(int64_t offset, int64_t num_bits) { - for (int i = start_bit; i < num_bits + start_bit; i++) { - if (!check_bit(i)) { - return false; - } - } - return true; + bmap_t bmask = BmapEntry::align_mask(num_bits) >> offset; + return ((m_bits & bmask) == bmask); } void BmapEntry::clear_bit(int bit)