summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@hq.newdream.net>2012-01-31 13:44:28 -0800
committerYehuda Sadeh <yehuda@hq.newdream.net>2012-01-31 13:44:28 -0800
commitcbc3e5a193ab74f18deab61faa5fda8cee04c020 (patch)
tree743f4dc07efe91b215915dfca6bd33c4a28c3826
parent4622556235afd86406bfc2ed60a7213e33eeb355 (diff)
downloadceph-cbc3e5a193ab74f18deab61faa5fda8cee04c020.tar.gz
objecter: define op for object expiration
part of the new object expiration operation. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
-rw-r--r--src/osdc/Objecter.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h
index d8ebd8e07cb..f9dca059455 100644
--- a/src/osdc/Objecter.h
+++ b/src/osdc/Objecter.h
@@ -103,6 +103,13 @@ struct ObjectOperation {
osd_op.indata.append(name);
osd_op.indata.append(data);
}
+ void add_expiration(int op, const bufferlist& data) {
+ OSDOp& osd_op = add_op(op);
+ osd_op.op.op = op;
+ osd_op.op.xattr.name_len = 0;
+ osd_op.op.xattr.value_len = data.length();
+ osd_op.indata.append(data);
+ }
void add_xattr_cmp(int op, const char *name, uint8_t cmp_op, uint8_t cmp_mode, const bufferlist& data) {
OSDOp& osd_op = add_op(op);
osd_op.op.op = op;
@@ -322,6 +329,11 @@ struct ObjectOperation {
::encode(attrs, bl);
add_xattr(CEPH_OSD_OP_RESETXATTRS, prefix, bl);
}
+ void set_expiration(utime_t t) {
+ bufferlist bl;
+ ::encode(t, bl);
+ add_expiration(CEPH_OSD_OP_SET_EXPIRATION, bl);
+ }
// trivialmap
void tmap_update(bufferlist& bl) {