]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cls_rbd: drop useless snapshot metadata helpers
authorSage Weil <sage@inktank.com>
Sat, 16 Jun 2012 14:33:19 +0000 (07:33 -0700)
committerSage Weil <sage@inktank.com>
Sat, 16 Jun 2012 14:34:00 +0000 (07:34 -0700)
Now that cls_rbd_snap is encodable, we don't need these helpers; get_key()
will suffice.

Signed-off-by: Sage Weil <sage@inktank.com>
src/cls_rbd.cc

index f7db1ccfbcbf5f18ea98fb6807d1afa9afa1ce89..f8ae50f50aaa4fd7d21ec6a2e88f6ea491ffae44 100644 (file)
@@ -137,37 +137,6 @@ static snapid_t snap_id_from_key(const string &key)
   return id;
 }
 
-static int decode_snapshot_metadata(uint64_t snap_id, bufferlist *in,
-                                   cls_rbd_snap *snap)
-{
-  try {
-    bufferlist::iterator iter = in->begin();
-    ::decode(*snap, iter);
-  } catch (const buffer::error &err) {
-    CLS_ERR("error decoding snapshot metadata for snap_id: %llu", snap_id);
-    return -EIO;
-  }
-
-  snap->id = snap_id;
-
-  return 0;
-}
-
-static int read_snapshot_metadata(cls_method_context_t hctx, uint64_t snap_id,
-                                 cls_rbd_snap *snap_meta)
-{
-  bufferlist snapbl;
-  string snapshot_key;
-  key_from_snap_id(snap_id, &snapshot_key);
-  int r = cls_cxx_map_get_val(hctx, snapshot_key, &snapbl);
-  if (r < 0) {
-    CLS_ERR("error reading snapshot metadata: %d", r);
-    return r;
-  }
-
-  return decode_snapshot_metadata(snap_id, &snapbl, snap_meta);
-}
-
 template<typename T>
 static int read_key(cls_method_context_t hctx, const string &key, T *out)
 {
@@ -301,7 +270,9 @@ int get_features(cls_method_context_t hctx, bufferlist *in, bufferlist *out)
       return r;
   } else {
     cls_rbd_snap snap;
-    int r = read_snapshot_metadata(hctx, snap_id, &snap);
+    string snapshot_key;
+    key_from_snap_id(snap_id, &snapshot_key);
+    int r = read_key(hctx, snapshot_key, &snap);
     if (r < 0)
       return r;
 
@@ -348,7 +319,9 @@ int get_size(cls_method_context_t hctx, bufferlist *in, bufferlist *out)
       return r;
   } else {
     cls_rbd_snap snap;
-    int r = read_snapshot_metadata(hctx, snap_id, &snap);
+    string snapshot_key;
+    key_from_snap_id(snap_id, &snapshot_key);
+    int r = read_key(hctx, snapshot_key, &snap);
     if (r < 0)
       return r;
 
@@ -483,7 +456,9 @@ int get_snapshot_name(cls_method_context_t hctx, bufferlist *in, bufferlist *out
     return -EINVAL;
 
   cls_rbd_snap snap;
-  int r = read_snapshot_metadata(hctx, snap_id, &snap);
+  string snapshot_key;
+  key_from_snap_id(snap_id, &snapshot_key);
+  int r = read_key(hctx, snapshot_key, &snap);
   if (r < 0)
     return r;
 
@@ -550,12 +525,15 @@ int snapshot_add(cls_method_context_t hctx, bufferlist *in, bufferlist *out)
 
     for (map<string, bufferlist>::iterator it = vals.begin();
         it != vals.end(); ++it) {
-      snapid_t cur_snap_id = snap_id_from_key(it->first);
       cls_rbd_snap old_meta;
-      r = decode_snapshot_metadata(cur_snap_id, &it->second, &old_meta);
-      if (r < 0)
-       return r;
-
+      bufferlist::iterator iter = it->second.begin();
+      try {
+       ::decode(old_meta, iter);
+      } catch (const buffer::error &err) {
+       snapid_t snap_id = snap_id_from_key(it->first);
+       CLS_ERR("error decoding snapshot metadata for snap_id: %llu", snap_id);
+       return -EIO;
+      }
       if (snap_meta.name == old_meta.name || snap_meta.id == old_meta.id) {
        CLS_LOG(20, "snap_name %s or snap_id %llu matches existing snap %s %llu",
                snap_meta.name.c_str(), snap_meta.id.val,