From: Sage Weil Date: Thu, 22 Sep 2016 16:37:29 +0000 (-0400) Subject: objclass: expose client features to cls ops X-Git-Tag: v11.1.0~515^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ffee7155b5b45fd63ee9af3ef928f9e5c0e97144;p=ceph.git objclass: expose client features to cls ops Signed-off-by: Sage Weil --- diff --git a/src/objclass/class_api.cc b/src/objclass/class_api.cc index f1a3522bc91d..1fae9242cab1 100644 --- a/src/objclass/class_api.cc +++ b/src/objclass/class_api.cc @@ -680,6 +680,12 @@ uint64_t cls_get_features(cls_method_context_t hctx) return ctx->pg->get_osdmap()->get_up_osd_features(); } +uint64_t cls_get_client_features(cls_method_context_t hctx) +{ + ReplicatedPG::OpContext *ctx = *(ReplicatedPG::OpContext **)hctx; + return ctx->op->get_req()->get_connection()->get_features(); +} + void cls_cxx_subop_version(cls_method_context_t hctx, string *s) { if (!s) diff --git a/src/objclass/objclass.h b/src/objclass/objclass.h index 17db742e8d09..f6eac06109f0 100644 --- a/src/objclass/objclass.h +++ b/src/objclass/objclass.h @@ -194,6 +194,7 @@ extern int cls_gen_rand_base64(char *dest, int size); /* size should be the requ extern uint64_t cls_current_version(cls_method_context_t hctx); extern int cls_current_subop_num(cls_method_context_t hctx); extern uint64_t cls_get_features(cls_method_context_t hctx); +extern uint64_t cls_get_client_features(cls_method_context_t hctx); /* helpers */ extern void cls_cxx_subop_version(cls_method_context_t hctx, string *s); diff --git a/src/test/librados_test_stub/LibradosTestStub.cc b/src/test/librados_test_stub/LibradosTestStub.cc index 734ebaa4325f..e996adc71eb4 100644 --- a/src/test/librados_test_stub/LibradosTestStub.cc +++ b/src/test/librados_test_stub/LibradosTestStub.cc @@ -1187,6 +1187,10 @@ uint64_t cls_get_features(cls_method_context_t hctx) { return CEPH_FEATURES_SUPPORTED_DEFAULT; } +uint64_t cls_get_client_features(cls_method_context_t hctx) { + return CEPH_FEATURES_SUPPORTED_DEFAULT; +} + int cls_log(int level, const char *format, ...) { int size = 256; va_list ap;