From: Sage Weil Date: Sat, 16 Jun 2012 14:33:19 +0000 (-0700) Subject: cls_rbd: drop useless snapshot metadata helpers X-Git-Tag: v0.48argonaut~52 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f8a196fb7d1d2e7453ef1dbe2ac5d5d4e5ea0207;p=ceph.git cls_rbd: drop useless snapshot metadata helpers Now that cls_rbd_snap is encodable, we don't need these helpers; get_key() will suffice. Signed-off-by: Sage Weil --- diff --git a/src/cls_rbd.cc b/src/cls_rbd.cc index f7db1ccfbcbf..f8ae50f50aaa 100644 --- a/src/cls_rbd.cc +++ b/src/cls_rbd.cc @@ -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 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::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,