++next;
struct cls_lock_locker_info_t& info = iter->second;
- if (!info.duration.is_zero() && info.duration < now) {
+ if (!info.expiration.is_zero() && info.expiration < now) {
CLS_LOG(20, "expiring locker");
lock->lockers.erase(iter);
}
* Input:
* @param name Lock name
* @param lock_type Type of lock (exclusive / shared)
- * @param duration Type of lock (exclusive / shared)
+ * @param duration Duration of lock (in seconds). Zero means it doesn't expire.
* @param flags lock flags
* @param cookie The cookie to set in the lock
* @param tag The tag to match with the lock (can only lock with matching tags)
linfo.lock_type = lock_type;
linfo.tag = tag;
- utime_t duration_abs;
+ utime_t expiration;
if (!duration.is_zero()) {
- duration_abs = ceph_clock_now(g_ceph_context);
- duration_abs += duration;
+ expiration = ceph_clock_now(g_ceph_context);
+ expiration += duration;
}
- struct cls_lock_locker_info_t info(duration_abs, inst.addr, description);
+ struct cls_lock_locker_info_t info(expiration, inst.addr, description);
linfo.lockers[id] = info;
f->dump_stream("locker") << id.locker;
f->dump_string("description", info.description);
f->dump_string("cookie", id.cookie);
- f->dump_stream("duration") << info.duration;
+ f->dump_stream("expiration") << info.expiration;
f->dump_stream("addr") << info.addr;
f->close_section();
}
void cls_lock_locker_info_t::dump(Formatter *f) const
{
- f->dump_stream("duration") << duration;
+ f->dump_stream("expiration") << expiration;
f->dump_stream("addr") << addr;
f->dump_string("description", description);
}
void cls_lock_locker_info_t::generate_test_instances(list<cls_lock_locker_info_t*>& o)
{
cls_lock_locker_info_t *i = new cls_lock_locker_info_t;
- i->duration = utime_t(5, 0);
+ i->expiration = utime_t(5, 0);
generate_test_addr(i->addr, 1, 2);
i->description = "description";
o.push_back(i);
struct cls_lock_locker_info_t
{
- utime_t duration;
+ utime_t expiration;
entity_addr_t addr;
string description;
cls_lock_locker_info_t() {}
cls_lock_locker_info_t(const utime_t& _e, const entity_addr_t& _a,
- const string& _d) : duration(_e), addr(_a), description(_d) {}
+ const string& _d) : expiration(_e), addr(_a), description(_d) {}
void encode(bufferlist &bl) const {
ENCODE_START(1, 1, bl);
- ::encode(duration, bl);
+ ::encode(expiration, bl);
::encode(addr, bl);
::encode(description, bl);
ENCODE_FINISH(bl);
}
void decode(bufferlist::iterator &bl) {
DECODE_START_LEGACY_COMPAT_LEN(1, 1, 1, bl);
- ::decode(duration, bl);
+ ::decode(expiration, bl);
::decode(addr, bl);
::decode(description, bl);
DECODE_FINISH(bl);
formatter->dump_stream("name") << id.locker;
formatter->dump_string("cookie", id.cookie);
formatter->dump_string("description", info.description);
- formatter->dump_stream("duration") << info.duration;
+ formatter->dump_stream("expiration") << info.expiration;
formatter->dump_stream("addr") << info.addr;
formatter->close_section();
}
map<cls_lock_id_t, cls_lock_locker_info_t>::iterator liter;
for (liter = lockers.begin(); liter != lockers.end(); ++liter) {
const cls_lock_id_t& locker = liter->first;
- cout << " " << locker.locker << " duration=" << liter->second.duration
+ cout << " " << locker.locker << " expiration=" << liter->second.expiration
<< " addr=" << liter->second.addr << " cookie=" << locker.cookie << std::endl;
}
}