tstellar / rpms / ceph

Forked from rpms/ceph 3 years ago
Clone
9b4d322
--- ceph-12.2.3/src/rocksdb/table/block.h.orig	2018-02-22 07:49:38.044899631 -0500
9b4d322
+++ ceph-12.2.3/src/rocksdb/table/block.h	2018-02-22 07:58:55.855899631 -0500
9b4d322
@@ -65,7 +65,8 @@
9b4d322
 
9b4d322
     // Create bitmap and set all the bits to 0
9b4d322
     bitmap_ = new std::atomic<uint32_t>[bitmap_size];
9b4d322
-    memset(bitmap_, 0, bitmap_size * kBytesPersEntry);
9b4d322
+    // memset(bitmap_, 0, bitmap_size * kBytesPersEntry);
9b4d322
+    { unsigned i = 0; for (; i < bitmap_size;) bitmap_[i++] = 0; }
9b4d322
 
9b4d322
     RecordTick(GetStatistics(), READ_AMP_TOTAL_READ_BYTES,
9b4d322
                num_bits_needed << bytes_per_bit_pow_);
9b4d322
--- ceph-12.2.3/src/rocksdb/db/c.cc.orig	2018-02-22 08:14:56.033899631 -0500
9b4d322
+++ ceph-12.2.3/src/rocksdb/db/c.cc	2018-02-22 10:06:39.759899631 -0500
9b4d322
@@ -1322,11 +1322,6 @@
9b4d322
   b->rep.PutLogData(Slice(blob, len));
9b4d322
 }
9b4d322
 
9b4d322
-void rocksdb_writebatch_iterate(
9b4d322
-    rocksdb_writebatch_t* b,
9b4d322
-    void* state,
9b4d322
-    void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
9b4d322
-    void (*deleted)(void*, const char* k, size_t klen)) {
9b4d322
   class H : public WriteBatch::Handler {
9b4d322
    public:
9b4d322
     void* state_;
9b4d322
@@ -1339,6 +1334,12 @@
9b4d322
       (*deleted_)(state_, key.data(), key.size());
9b4d322
     }
9b4d322
   };
9b4d322
+
9b4d322
+void rocksdb_writebatch_iterate(
9b4d322
+    rocksdb_writebatch_t* b,
9b4d322
+    void* state,
9b4d322
+    void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
9b4d322
+    void (*deleted)(void*, const char* k, size_t klen)) {
9b4d322
   H handler;
9b4d322
   handler.state_ = state;
9b4d322
   handler.put_ = put;
9b4d322
@@ -1579,18 +1580,6 @@
9b4d322
     void* state,
9b4d322
     void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
9b4d322
     void (*deleted)(void*, const char* k, size_t klen)) {
9b4d322
-  class H : public WriteBatch::Handler {
9b4d322
-   public:
9b4d322
-    void* state_;
9b4d322
-    void (*put_)(void*, const char* k, size_t klen, const char* v, size_t vlen);
9b4d322
-    void (*deleted_)(void*, const char* k, size_t klen);
9b4d322
-    virtual void Put(const Slice& key, const Slice& value) override {
9b4d322
-      (*put_)(state_, key.data(), key.size(), value.data(), value.size());
9b4d322
-    }
9b4d322
-    virtual void Delete(const Slice& key) override {
9b4d322
-      (*deleted_)(state_, key.data(), key.size());
9b4d322
-    }
9b4d322
-  };
9b4d322
   H handler;
9b4d322
   handler.state_ = state;
9b4d322
   handler.put_ = put;
9b4d322
@@ -2532,13 +2521,9 @@
9b4d322
   delete filter;
9b4d322
 }
9b4d322
 
9b4d322
-rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_bloom_format(int bits_per_key, bool original_format) {
9b4d322
-  // Make a rocksdb_filterpolicy_t, but override all of its methods so
9b4d322
-  // they delegate to a NewBloomFilterPolicy() instead of user
9b4d322
-  // supplied C functions.
9b4d322
-  struct Wrapper : public rocksdb_filterpolicy_t {
9b4d322
+  struct WrapperFP : public rocksdb_filterpolicy_t {
9b4d322
     const FilterPolicy* rep_;
9b4d322
-    ~Wrapper() { delete rep_; }
9b4d322
+    ~WrapperFP() { delete rep_; }
9b4d322
     const char* Name() const override { return rep_->Name(); }
9b4d322
     void CreateFilter(const Slice* keys, int n,
9b4d322
                       std::string* dst) const override {
9b4d322
@@ -2549,11 +2534,16 @@
9b4d322
     }
9b4d322
     static void DoNothing(void*) { }
9b4d322
   };
9b4d322
-  Wrapper* wrapper = new Wrapper;
9b4d322
+
9b4d322
+rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_bloom_format(int bits_per_key, bool original_format) {
9b4d322
+  // Make a rocksdb_filterpolicy_t, but override all of its methods so
9b4d322
+  // they delegate to a NewBloomFilterPolicy() instead of user
9b4d322
+  // supplied C functions.
9b4d322
+  WrapperFP* wrapper = new WrapperFP;
9b4d322
   wrapper->rep_ = NewBloomFilterPolicy(bits_per_key, original_format);
9b4d322
   wrapper->state_ = nullptr;
9b4d322
   wrapper->delete_filter_ = nullptr;
9b4d322
-  wrapper->destructor_ = &Wrapper::DoNothing;
9b4d322
+  wrapper->destructor_ = &WrapperFP::DoNothing;
9b4d322
   return wrapper;
9b4d322
 }
9b4d322
 
9b4d322
@@ -2889,10 +2879,9 @@
9b4d322
   delete st;
9b4d322
 }
9b4d322
 
9b4d322
-rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t prefixLen) {
9b4d322
-  struct Wrapper : public rocksdb_slicetransform_t {
9b4d322
+  struct WrapperST : public rocksdb_slicetransform_t {
9b4d322
     const SliceTransform* rep_;
9b4d322
-    ~Wrapper() { delete rep_; }
9b4d322
+    ~WrapperST() { delete rep_; }
9b4d322
     const char* Name() const override { return rep_->Name(); }
9b4d322
     Slice Transform(const Slice& src) const override {
9b4d322
       return rep_->Transform(src);
9b4d322
@@ -2903,31 +2892,20 @@
9b4d322
     bool InRange(const Slice& src) const override { return rep_->InRange(src); }
9b4d322
     static void DoNothing(void*) { }
9b4d322
   };
9b4d322
-  Wrapper* wrapper = new Wrapper;
9b4d322
+
9b4d322
+rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t prefixLen) {
9b4d322
+  WrapperST* wrapper = new WrapperST;
9b4d322
   wrapper->rep_ = rocksdb::NewFixedPrefixTransform(prefixLen);
9b4d322
   wrapper->state_ = nullptr;
9b4d322
-  wrapper->destructor_ = &Wrapper::DoNothing;
9b4d322
+  wrapper->destructor_ = &WrapperST::DoNothing;
9b4d322
   return wrapper;
9b4d322
 }
9b4d322
 
9b4d322
 rocksdb_slicetransform_t* rocksdb_slicetransform_create_noop() {
9b4d322
-  struct Wrapper : public rocksdb_slicetransform_t {
9b4d322
-    const SliceTransform* rep_;
9b4d322
-    ~Wrapper() { delete rep_; }
9b4d322
-    const char* Name() const override { return rep_->Name(); }
9b4d322
-    Slice Transform(const Slice& src) const override {
9b4d322
-      return rep_->Transform(src);
9b4d322
-    }
9b4d322
-    bool InDomain(const Slice& src) const override {
9b4d322
-      return rep_->InDomain(src);
9b4d322
-    }
9b4d322
-    bool InRange(const Slice& src) const override { return rep_->InRange(src); }
9b4d322
-    static void DoNothing(void*) { }
9b4d322
-  };
9b4d322
-  Wrapper* wrapper = new Wrapper;
9b4d322
+  WrapperST* wrapper = new WrapperST;
9b4d322
   wrapper->rep_ = rocksdb::NewNoopTransform();
9b4d322
   wrapper->state_ = nullptr;
9b4d322
-  wrapper->destructor_ = &Wrapper::DoNothing;
9b4d322
+  wrapper->destructor_ = &WrapperST::DoNothing;
9b4d322
   return wrapper;
9b4d322
 }
9b4d322
 
9b4d322
--- ceph-12.2.3/src/rocksdb/memtable/inlineskiplist.h.orig	2018-02-22 10:34:06.918899631 -0500
9b4d322
+++ ceph-12.2.3/src/rocksdb/memtable/inlineskiplist.h	2018-02-22 10:34:44.145899631 -0500
9b4d322
@@ -279,7 +279,7 @@
9b4d322
   // next_[0].  This is used for passing data from AllocateKey to Insert.
9b4d322
   void StashHeight(const int height) {
9b4d322
     assert(sizeof(int) <= sizeof(next_[0]));
9b4d322
-    memcpy(&next_[0], &height, sizeof(int));
9b4d322
+    memcpy(static_cast<void*>(&next_[0]), &height, sizeof(int));
9b4d322
   }
9b4d322
 
9b4d322
   // Retrieves the value passed to StashHeight.  Undefined after a call