| 4552 | } |
| 4553 | |
| 4554 | void Client::wake_up_session_caps(MetaSession *s, bool reconnect) |
| 4555 | { |
| 4556 | for (const auto &cap : s->caps) { |
| 4557 | auto &in = cap->inode; |
| 4558 | if (reconnect) { |
| 4559 | in.requested_max_size = 0; |
| 4560 | in.wanted_max_size = 0; |
| 4561 | } else { |
| 4562 | if (cap->gen < s->cap_gen) { |
| 4563 | // mds did not re-issue stale cap. |
| 4564 | cap->issued = cap->implemented = CEPH_CAP_PIN; |
| 4565 | // make sure mds knows what we want. |
| 4566 | if (in.caps_file_wanted() & ~cap->wanted) |
| 4567 | in.flags |= I_CAP_DROPPED; |
| 4568 | } |
| 4569 | } |
| 4570 | ldout(cct, 10) << __func__ << " calling signal_caps_inode" << dendl; |
| 4571 | signal_caps_inode(&in); |
| 4572 | } |
| 4573 | } |
| 4574 | |
| 4575 | |
| 4576 | // flush dirty data (from objectcache) |
nothing calls this directly
no test coverage detected