]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: PurgeQueue.cc fix for 32bit compilation 41235/head
authorDuncan Bellamy <dunk@denkimushi.com>
Sat, 8 May 2021 10:52:35 +0000 (11:52 +0100)
committerDuncan Bellamy <dunk@denkimushi.com>
Mon, 10 May 2021 19:35:52 +0000 (20:35 +0100)
files_high_water is defined as uint64_t but when compiling on 32bit these max functions
fail as they are both not considered uint64_t by gcc 10 even though they are

  files_high_water = std::max(files_high_water,
                               static_cast<uint64_t>(in_flight.size()));

Fixes: https://tracker.ceph.com/issues/50707
Signed-off-by: Duncan Bellamy <dunk@denkimushi.com>
src/mds/PurgeQueue.cc

index 977be2c118c51e450ce12769d691ac6f551714ce..56c962d19ba83bc1032b144d0dfc9a99428262c2 100644 (file)
@@ -594,8 +594,8 @@ void PurgeQueue::_execute_item(
 
   in_flight[expire_to] = item;
   logger->set(l_pq_executing, in_flight.size());
-  files_high_water = std::max(files_high_water,
-                              static_cast<uint64_t>(in_flight.size()));
+  files_high_water = std::max<uint64_t>(files_high_water,
+                              in_flight.size());
   logger->set(l_pq_executing_high_water, files_high_water);
   auto ops = _calculate_ops(item);
   ops_in_flight += ops;
@@ -662,8 +662,8 @@ void PurgeQueue::_execute_item(
     logger->set(l_pq_executing_ops_high_water, ops_high_water);
     in_flight.erase(expire_to);
     logger->set(l_pq_executing, in_flight.size());
-    files_high_water = std::max(files_high_water,
-                                static_cast<uint64_t>(in_flight.size()));
+    files_high_water = std::max<uint64_t>(files_high_water,
+                                in_flight.size());
     logger->set(l_pq_executing_high_water, files_high_water);
     return;
   }
@@ -716,8 +716,8 @@ void PurgeQueue::_execute_item_complete(
 
   in_flight.erase(iter);
   logger->set(l_pq_executing, in_flight.size());
-  files_high_water = std::max(files_high_water,
-                              static_cast<uint64_t>(in_flight.size()));
+  files_high_water = std::max<uint64_t>(files_high_water,
+                              in_flight.size());
   logger->set(l_pq_executing_high_water, files_high_water);
   dout(10) << "in_flight.size() now " << in_flight.size() << dendl;