]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/bluestore: decode min_alloc_size into temp var
authorSage Weil <sage@redhat.com>
Tue, 31 Jan 2017 17:53:48 +0000 (12:53 -0500)
committerSage Weil <sage@redhat.com>
Tue, 31 Jan 2017 17:53:48 +0000 (12:53 -0500)
Defend against future changes to min_alloc_size.

Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index 036e43933a3b205ac32a444211f0a180cf063240..5a6d563b746f41a66a3fb80bb519e4f9cc2a8d30 100644 (file)
@@ -4116,7 +4116,7 @@ int BlueStore::mkfs()
     _set_alloc_sizes();
     {
       bufferlist bl;
-      ::encode(min_alloc_size, bl);
+      ::encode((uint64_t)min_alloc_size, bl);
       t->set(PREFIX_SUPER, "min_alloc_size", bl);
     }
 
@@ -6461,7 +6461,9 @@ int BlueStore::_open_super_meta()
     db->get(PREFIX_SUPER, "min_alloc_size", &bl);
     auto p = bl.begin();
     try {
-      ::decode(min_alloc_size, p);
+      uint64_t val;
+      ::decode(val, p);
+      min_alloc_size = val;
     } catch (buffer::error& e) {
       derr << __func__ << " unable to read min_alloc_size" << dendl;
       return -EIO;
@@ -6494,7 +6496,9 @@ int BlueStore::_upgrade_super()
       db->get(PREFIX_SUPER, "min_min_alloc_size", &bl);
       auto p = bl.begin();
       try {
-       ::decode(min_alloc_size, p);
+       uint64_t val;
+       ::decode(val, p);
+       min_alloc_size = val;
       } catch (buffer::error& e) {
        derr << __func__ << " failed to read min_min_alloc_size" << dendl;
        return -EIO;