]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: fix the problem that estimate the log size incorrectly 61891/head
authorwanglinke <wanglinke@cmss.chinamobile.com>
Wed, 27 Mar 2024 09:51:04 +0000 (17:51 +0800)
committerKonstantin Shalygin <k0ste@k0ste.ru>
Wed, 19 Feb 2025 08:39:46 +0000 (15:39 +0700)
In BlueFS::_estimate_log_size_N, the total size of
the dir was calculated incorrectly.

Fixes: https://tracker.ceph.com/issues/65176
co-author: Jrchyang Yu <yuzhiqiang_yewu@cmss.chinamobile.com>
Signed-off-by: Wang Linke <wanglinke_yewu@cmss.chinamobile.com>
(cherry picked from commit 61058bf102f9ed7dbe2e601f5a1243be5149df06)

src/os/bluestore/BlueFS.cc

index 96936c0d73b8b441f858e1374b835e73088b84d8..e6e86ef489c0ec1118ea6e7245197ebc33a49f07 100644 (file)
@@ -2437,7 +2437,7 @@ uint64_t BlueFS::_estimate_log_size_N()
   int avg_file_size = 12;
   uint64_t size = 4096 * 2;
   size += nodes.file_map.size() * (1 + sizeof(bluefs_fnode_t));
-  size += nodes.dir_map.size() + (1 + avg_dir_size);
+  size += nodes.dir_map.size() * (1 + avg_dir_size);
   size += nodes.file_map.size() * (1 + avg_dir_size + avg_file_size);
   return round_up_to(size, super.block_size);
 }