From: Casey Bodley Date: Sun, 21 May 2017 03:01:23 +0000 (-0400) Subject: librados: add rados_write_op_omap_rm_range2() X-Git-Tag: v15.1.0~1792^2~12 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=e8c320f5d9660ea0bb79a3dd5c2d39f971b89db5;p=ceph-ci.git librados: add rados_write_op_omap_rm_range2() Signed-off-by: Casey Bodley --- diff --git a/src/include/rados/librados.h b/src/include/rados/librados.h index d40666e45b5..5b1e6c7dccc 100644 --- a/src/include/rados/librados.h +++ b/src/include/rados/librados.h @@ -3043,6 +3043,23 @@ CEPH_RADOS_API void rados_write_op_omap_rm_keys2(rados_write_op_t write_op, const size_t* key_lens, size_t keys_len); + +/** + * Remove key/value pairs from an object whose keys are in the range + * [key_begin, key_end) + * + * @param write_op operation to add this action to + * @param key_begin the lower bound of the key range to remove + * @param key_begin_len length of key_begin + * @param key_end the upper bound of the key range to remove + * @param key_end_len length of key_end + */ +CEPH_RADOS_API void rados_write_op_omap_rm_range2(rados_write_op_t write_op, + const char *key_begin, + size_t key_begin_len, + const char *key_end, + size_t key_end_len); + /** * Remove all key/value pairs from an object * diff --git a/src/librados/librados_c.cc b/src/librados/librados_c.cc index ac913d1ebdf..117653b070a 100644 --- a/src/librados/librados_c.cc +++ b/src/librados/librados_c.cc @@ -3362,6 +3362,20 @@ extern "C" void _rados_write_op_omap_rm_keys2(rados_write_op_t write_op, } LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_omap_rm_keys2); +extern "C" void _rados_write_op_omap_rm_range2(rados_write_op_t write_op, + const char *key_begin, + size_t key_begin_len, + const char *key_end, + size_t key_end_len) +{ + tracepoint(librados, rados_write_op_omap_rm_range_enter, + write_op, key_begin, key_end); + ((::ObjectOperation *)write_op)->omap_rm_range({key_begin, key_begin_len}, + {key_end, key_end_len}); + tracepoint(librados, rados_write_op_omap_rm_range_exit); +} +LIBRADOS_C_API_BASE_DEFAULT(rados_write_op_omap_rm_range2); + extern "C" void _rados_write_op_omap_clear(rados_write_op_t write_op) { tracepoint(librados, rados_write_op_omap_clear_enter, write_op); diff --git a/src/tracing/librados.tp b/src/tracing/librados.tp index 4921258dfa6..4b2c55e06f7 100644 --- a/src/tracing/librados.tp +++ b/src/tracing/librados.tp @@ -3347,6 +3347,23 @@ TRACEPOINT_EVENT(librados, rados_write_op_omap_rm_keys_exit, TP_FIELDS() ) +TRACEPOINT_EVENT(librados, rados_write_op_omap_rm_range_enter, + TP_ARGS( + rados_write_op_t, op, + const char*, key_begin, + const char*, key_end), + TP_FIELDS( + ctf_integer_hex(rados_write_op_t, op, op) + ceph_ctf_string(key_begin, key_begin) + ceph_ctf_string(key_end, key_end) + ) +) + +TRACEPOINT_EVENT(librados, rados_write_op_omap_rm_range_exit, + TP_ARGS(), + TP_FIELDS() +) + TRACEPOINT_EVENT(librados, rados_write_op_omap_clear_enter, TP_ARGS( rados_write_op_t, op),