]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- |
2 | // vim: ts=8 sw=2 smarttab | |
3 | ||
4 | #include "include/types.h" | |
5 | #include "messages/MClientCapRelease.h" | |
6 | ||
7 | #include "MetaSession.h" | |
8 | ||
9 | #include "common/Formatter.h" | |
10 | ||
11 | const char *MetaSession::get_state_name() const | |
12 | { | |
13 | switch (state) { | |
14 | case STATE_NEW: return "new"; | |
15 | case STATE_OPENING: return "opening"; | |
16 | case STATE_OPEN: return "open"; | |
17 | case STATE_CLOSING: return "closing"; | |
18 | case STATE_CLOSED: return "closed"; | |
19 | case STATE_STALE: return "stale"; | |
20 | default: return "unknown"; | |
21 | } | |
22 | } | |
23 | ||
24 | void MetaSession::dump(Formatter *f) const | |
25 | { | |
26 | f->dump_int("mds", mds_num); | |
11fdf7f2 | 27 | f->dump_object("addrs", addrs); |
7c673cae FG |
28 | f->dump_unsigned("seq", seq); |
29 | f->dump_unsigned("cap_gen", cap_gen); | |
30 | f->dump_stream("cap_ttl") << cap_ttl; | |
31 | f->dump_stream("last_cap_renew_request") << last_cap_renew_request; | |
32 | f->dump_unsigned("cap_renew_seq", cap_renew_seq); | |
11fdf7f2 | 33 | f->dump_int("num_caps", caps.size()); |
7c673cae FG |
34 | f->dump_string("state", get_state_name()); |
35 | } | |
36 | ||
7c673cae FG |
37 | void MetaSession::enqueue_cap_release(inodeno_t ino, uint64_t cap_id, ceph_seq_t iseq, |
38 | ceph_seq_t mseq, epoch_t osd_barrier) | |
39 | { | |
40 | if (!release) { | |
11fdf7f2 | 41 | release.reset(new MClientCapRelease, false); |
7c673cae FG |
42 | } |
43 | ||
44 | if (osd_barrier > release->osd_epoch_barrier) { | |
45 | release->osd_epoch_barrier = osd_barrier; | |
46 | } | |
47 | ||
48 | ceph_mds_cap_item i; | |
49 | i.ino = ino; | |
50 | i.cap_id = cap_id; | |
51 | i.seq = iseq; | |
52 | i.migrate_seq = mseq; | |
53 | release->caps.push_back(i); | |
54 | } |