]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix default_placement containing "/" when storage_class is standard 28538/head
authormkogan1 <mkogan@redhat.com>
Thu, 18 Apr 2019 09:30:51 +0000 (05:30 -0400)
committerNathan Cutler <ncutler@suse.com>
Thu, 13 Jun 2019 21:19:36 +0000 (23:19 +0200)
fixes: http://tracker.ceph.com/issues/39380

Signed-off-by: mkogan1 <mkogan@redhat.com>
(cherry picked from commit 0b63ef8ef3b801e71ea09965a0ee8d172de4f31c)

src/rgw/rgw_common.h

index d558b6bdc2e426ffa7bd4d89fbb3535fbc636c06..7a7624c6b5243e195b61f06f92a47339d94c2253 100644 (file)
@@ -695,7 +695,7 @@ struct rgw_placement_rule {
 
   void encode(bufferlist& bl) const {
     /* no ENCODE_START/END due to backward compatibility */
-    std::string s = to_str_explicit();
+    std::string s = to_str();
     ceph::encode(s, bl);
   }
 
@@ -720,12 +720,11 @@ struct rgw_placement_rule {
     size_t pos = s.find("/");
     if (pos == std::string::npos) {
       name = s;
+      storage_class.clear();
       return;
     }
     name = s.substr(0, pos);
-    if (pos < s.size() - 1) {
-      storage_class = s.substr(pos + 1);
-    }
+    storage_class = s.substr(pos + 1);
   }
 
   bool standard_storage_class() const {