]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/bluestore: Fix read_meta and write_meta
authorAdam Kupczyk <akupczyk@ibm.com>
Tue, 30 Jan 2024 12:45:05 +0000 (12:45 +0000)
committerPere Diaz Bou <pere-altea@hotmail.com>
Fri, 23 Aug 2024 09:49:24 +0000 (11:49 +0200)
Remove asserts if optional reading of bdev label fails.
Pass all valid bdev locations when writing bdev labels.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit c0bd6fff41ba0c7e5d7a7fe9c7bfc5fa7b90beb4)

src/os/bluestore/BlueStore.cc

index f6fd2b3331a1fbbfb0031317fc5e9ce599e8161c..65705e87f6d094bdfeedc1211b0f8f8902d0064b 100644 (file)
@@ -6007,16 +6007,15 @@ int BlueStore::write_meta(const std::string& key, const std::string& value)
 {
   string p = path + "/block";
   if (bdev_label_valid_locations.empty()) {
-    int r = _read_main_bdev_label(cct, p, &bdev_label,
+    _read_main_bdev_label(cct, p, &bdev_label,
       &bdev_label_valid_locations, &bdev_label_multi, &bdev_label_epoch);
-    ceph_assert(r == 0);
   }
   if (!bdev_label_valid_locations.empty()) {
     bdev_label.meta[key] = value;
     if (bdev_label_multi) {
       bdev_label.meta["epoch"] = std::to_string(bdev_label_epoch);
     }
-    int r = _write_bdev_label(cct, p, bdev_label);
+    int r = _write_bdev_label(cct, p, bdev_label, bdev_label_valid_locations);
     ceph_assert(r == 0);
   }
   return ObjectStore::write_meta(key, value);
@@ -6026,9 +6025,8 @@ int BlueStore::read_meta(const std::string& key, std::string *value)
 {
   string p = path + "/block";
   if (bdev_label_valid_locations.empty()) {
-    int r = _read_main_bdev_label(cct, p, &bdev_label,
+    _read_main_bdev_label(cct, p, &bdev_label,
       &bdev_label_valid_locations, &bdev_label_multi, &bdev_label_epoch);
-    ceph_assert(r == 0);
   }
   if (!bdev_label_valid_locations.empty()) {
     auto i = bdev_label.meta.find(key);