summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@inktank.com>2013-02-26 18:00:59 -0800
committerYehuda Sadeh <yehuda@inktank.com>2013-02-26 18:00:59 -0800
commitad57948c43dbb3da0924158133178ee1ef362d72 (patch)
tree8db93feb2a1ed0493772ec16e62041053bb0b0a5
parentf4eb144b4839ed1241468008d5fc1fef3c1f23f3 (diff)
downloadceph-ad57948c43dbb3da0924158133178ee1ef362d72.tar.gz
cls_version: various fixes
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-rw-r--r--src/cls/version/cls_version.cc4
-rw-r--r--src/cls/version/cls_version_client.cc2
-rw-r--r--src/cls/version/cls_version_client.h8
3 files changed, 8 insertions, 6 deletions
diff --git a/src/cls/version/cls_version.cc b/src/cls/version/cls_version.cc
index bb79caa1767..baecc248a22 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 0aaa7a76b10..b0b81653f1f 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 648254d912e..b11ea4fd37d 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