From 421d378a69e205a5f65364e92af88e08a0b716ee Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Tue, 29 May 2018 14:23:41 -0500 Subject: [PATCH] os/bluestore: Fix potential uint64_t to int conversion issue. Signed-off-by: Mark Nelson (cherry picked from commit 1d51e764500f519018f572282ef0a269914edfd4) --- src/os/bluestore/BlueStore.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 9335dc0daa2d3..e3016889317c7 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -827,9 +827,10 @@ void BlueStore::LRUCache::_trim(uint64_t onode_max, uint64_t buffer_max) } // onodes - int num = onode_lru.size() - onode_max; - if (num <= 0) + if (onode_max >= onode_lru.size()) { return; // don't even try + } + uint64_t num = onode_lru.size() - onode_max; auto p = onode_lru.end(); ceph_assert(p != onode_lru.begin()); @@ -1123,9 +1124,10 @@ void BlueStore::TwoQCache::_trim(uint64_t onode_max, uint64_t buffer_max) } // onodes - int num = onode_lru.size() - onode_max; - if (num <= 0) + if (onode_max >= onode_lru.size()) { return; // don't even try + } + uint64_t num = onode_lru.size() - onode_max; auto p = onode_lru.end(); ceph_assert(p != onode_lru.begin()); -- 2.39.5