]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix purge_queue's _calculate_ops is inaccurate 37037/head
authorYanhu Cao <gmayyyha@gmail.com>
Tue, 8 Sep 2020 06:20:12 +0000 (14:20 +0800)
committerYanhu Cao <gmayyyha@gmail.com>
Mon, 14 Sep 2020 03:19:17 +0000 (11:19 +0800)
No need to account for removing (or zeroing) backtrace,
because if item.size is 0, num is already set to 1.

Fixes: https://tracker.ceph.com/issues/47353
Signed-off-by: Yanhu Cao <gmayyyha@gmail.com>
src/mds/PurgeQueue.cc

index 7038d693007fc725cd567054df3a2d163a33a636..71cc929aecc31560ea4d0075c21e0756f60c1016 100644 (file)
@@ -371,14 +371,12 @@ uint32_t PurgeQueue::_calculate_ops(const PurgeItem &item) const
     ops_required = 1 + leaves.size();
   } else {
     // File, work out concurrent Filer::purge deletes
+    // Account for removing (or zeroing) backtrace
     const uint64_t num = (item.size > 0) ?
       Striper::get_num_objects(item.layout, item.size) : 1;
 
     ops_required = std::min(num, g_conf()->filer_max_purge_ops);
 
-    // Account for removing (or zeroing) backtrace
-    ops_required += 1;
-
     // Account for deletions for old pools
     if (item.action != PurgeItem::TRUNCATE_FILE) {
       ops_required += item.old_pools.size();