]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: round old size by min_alloc
authorJoshua Blanch <joshua.blanch@clyso.com>
Tue, 3 Mar 2026 19:34:16 +0000 (19:34 +0000)
committerJoshua Blanch <joshua.blanch@clyso.com>
Thu, 23 Apr 2026 15:05:55 +0000 (15:05 +0000)
Signed-off-by: Joshua Blanch <joshua.blanch@clyso.com>
src/os/bluestore/BlueFS.cc

index 3144538fd306d14f5221460f71abd1d507151a1a..3b19b21c618a7a1484f92c02403d6d36bf8f3462 100644 (file)
@@ -16,6 +16,7 @@
 #include "Allocator.h"
 #include "include/buffer_fwd.h"
 #include "include/ceph_assert.h"
+#include "include/intarith.h"
 #include "include/stringify.h"
 #include "common/admin_socket.h"
 #include "os/bluestore/bluefs_types.h"
@@ -936,7 +937,8 @@ void BlueFS::expand_device(unsigned devid, uint64_t new_size, uint64_t old_size)
 
   alloc[devid]->expand(new_size);
   auto aligned_size = p2align(new_size, alloc_size[devid]);
-  alloc[devid]->init_add_free(old_size, aligned_size - old_size);
+  auto aligned_old_size = p2roundup(old_size, alloc_size[devid]);
+  alloc[devid]->init_add_free(aligned_old_size, aligned_size - aligned_old_size);
 
   if (vselector) {
     vselector->expand_device(devid, aligned_size);