]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/os/bluestore/bluestore_types.h
import 15.2.0 Octopus source
[ceph.git] / ceph / src / os / bluestore / bluestore_types.h
index f58a079c4af252c4c319d71b9ad84836740fe66c..63f7c0fd8abf7ae67e01129f940718f0f06f9c2b 100644 (file)
@@ -33,7 +33,7 @@ namespace ceph {
 /// label for block device
 struct bluestore_bdev_label_t {
   uuid_d osd_uuid;     ///< osd uuid
-  uint64_t size;       ///< device size
+  uint64_t size = 0;   ///< device size
   utime_t btime;       ///< birth time
   string description;  ///< device description
 
@@ -257,6 +257,8 @@ struct bluestore_blob_use_tracker_t {
   bluestore_blob_use_tracker_t()
     : au_size(0), num_au(0), bytes_per_au(nullptr) {
   }
+  bluestore_blob_use_tracker_t(const bluestore_blob_use_tracker_t& tracker);
+  bluestore_blob_use_tracker_t& operator=(const bluestore_blob_use_tracker_t& rhs);
   ~bluestore_blob_use_tracker_t() {
     clear();
   }
@@ -913,6 +915,7 @@ struct bluestore_onode_t {
   enum {
     FLAG_OMAP = 1,       ///< object may have omap data
     FLAG_PGMETA_OMAP = 2,  ///< omap data is in meta omap prefix
+    FLAG_PERPOOL_OMAP = 4, ///< omap data is in per-pool prefix; per-pool keys
   };
 
   string get_flags_string() const {
@@ -920,6 +923,12 @@ struct bluestore_onode_t {
     if (flags & FLAG_OMAP) {
       s = "omap";
     }
+    if (flags & FLAG_PGMETA_OMAP) {
+      s += "+pgmeta_omap";
+    }
+    if (flags & FLAG_PERPOOL_OMAP) {
+      s += "+perpool_omap";
+    }
     return s;
   }
 
@@ -941,9 +950,15 @@ struct bluestore_onode_t {
   bool is_pgmeta_omap() const {
     return has_flag(FLAG_PGMETA_OMAP);
   }
+  bool is_perpool_omap() const {
+    return has_flag(FLAG_PERPOOL_OMAP);
+  }
 
-  void set_omap_flag() {
-    set_flag(FLAG_OMAP);
+  void set_omap_flags() {
+    set_flag(FLAG_OMAP | FLAG_PERPOOL_OMAP);
+  }
+  void set_omap_flags_pgmeta() {
+    set_flag(FLAG_OMAP | FLAG_PGMETA_OMAP);
   }
 
   void clear_omap_flag() {