From: Yehuda Sadeh Date: Wed, 27 Feb 2013 02:00:59 +0000 (-0800) Subject: cls_version: various fixes X-Git-Tag: v0.67-rc1~128^2~198 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8d7d436d532c8b8256beddf9eae626eefbcab0f5;p=ceph.git cls_version: various fixes Signed-off-by: Yehuda Sadeh --- diff --git a/src/cls/version/cls_version.cc b/src/cls/version/cls_version.cc index bb79caa1767f..baecc248a22d 100644 --- a/src/cls/version/cls_version.cc +++ b/src/cls/version/cls_version.cc @@ -167,7 +167,7 @@ static int cls_version_inc(cls_method_context_t hctx, bufferlist *in, bufferlist return ret; if (!check_conds(op.conds, objv)) { - return -EAGAIN; + return -ECANCELED; } objv.inc(); @@ -196,7 +196,7 @@ static int cls_version_check(cls_method_context_t hctx, bufferlist *in, bufferli return ret; if (!check_conds(op.conds, objv)) { - return -EAGAIN; + return -ECANCELED; } return 0; diff --git a/src/cls/version/cls_version_client.cc b/src/cls/version/cls_version_client.cc index 0aaa7a76b103..b0b81653f1f7 100644 --- a/src/cls/version/cls_version_client.cc +++ b/src/cls/version/cls_version_client.cc @@ -37,7 +37,7 @@ void cls_version_inc(librados::ObjectWriteOperation& op, obj_version& objv, Vers call.conds.push_back(c); ::encode(call, in); - op.exec("version", "inc_cond", in); + op.exec("version", "inc_conds", in); } void cls_version_check(librados::ObjectOperation& op, obj_version& objv, VersionCond cond) diff --git a/src/cls/version/cls_version_client.h b/src/cls/version/cls_version_client.h index 648254d912ed..b11ea4fd37d7 100644 --- a/src/cls/version/cls_version_client.h +++ b/src/cls/version/cls_version_client.h @@ -13,9 +13,11 @@ void cls_version_set(librados::ObjectWriteOperation& op, obj_version& ver); /* increase anyway */ void cls_version_inc(librados::ObjectWriteOperation& op); -/* inc only if ver matches (if not empty), otherwise return -EAGAIN */ -void cls_version_inc_conditional(librados::ObjectWriteOperation& op, obj_version& ver); +/* conditional increase, return -EAGAIN if condition fails */ +void cls_version_inc(librados::ObjectWriteOperation& op, obj_version& ver, VersionCond cond); -int cls_refcount_read(librados::IoCtx& io_ctx, obj_version *ver); +int cls_version_read(librados::IoCtx& io_ctx, string& oid, obj_version *ver); + +void cls_version_check(librados::ObjectOperation& op, obj_version& ver, VersionCond cond); #endif