From: Ramesh Chander Date: Tue, 17 May 2016 09:51:25 +0000 (-0700) Subject: fixing wrong length cal in BitmapFreelist X-Git-Tag: v11.0.0~522^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=38714752f285a7f5feb4af102ece31d3c1e51c50;p=ceph.git fixing wrong length cal in BitmapFreelist Signed-off-by: Ramesh Chander --- diff --git a/src/os/bluestore/BitmapFreelistManager.cc b/src/os/bluestore/BitmapFreelistManager.cc index 93bd3f605a1..82da2a552c5 100644 --- a/src/os/bluestore/BitmapFreelistManager.cc +++ b/src/os/bluestore/BitmapFreelistManager.cc @@ -276,6 +276,7 @@ bool BitmapFreelistManager::enumerate_next(uint64_t *offset, uint64_t *length) << " offset " << end << dendl; *length = end - *offset; + assert((*offset + *length) <= size); dout(10) << __func__ << " " << *offset << "~" << *length << dendl; return true; } @@ -295,9 +296,10 @@ bool BitmapFreelistManager::enumerate_next(uint64_t *offset, uint64_t *length) end = size; if (enumerate_offset < end) { - *length = end - enumerate_offset; + *length = end - *offset; dout(10) << __func__ << " " << *offset << "~" << *length << dendl; enumerate_offset = end; + assert((*offset + *length) <= size); return true; }