| 253 | } |
| 254 | |
| 255 | int Inode::caps_issued(int *implemented) const |
| 256 | { |
| 257 | int c = snap_caps; |
| 258 | int i = 0; |
| 259 | for (const auto &[mds, cap] : caps) { |
| 260 | if (cap_is_valid(cap)) { |
| 261 | c |= cap.issued; |
| 262 | i |= cap.implemented; |
| 263 | } |
| 264 | } |
| 265 | // exclude caps issued by non-auth MDS, but are been revoking by |
| 266 | // the auth MDS. The non-auth MDS should be revoking/exporting |
| 267 | // these caps, but the message is delayed. |
| 268 | if (auth_cap) |
| 269 | c &= ~auth_cap->implemented | auth_cap->issued; |
| 270 | |
| 271 | if (implemented) |
| 272 | *implemented = i; |
| 273 | return c; |
| 274 | } |
| 275 | |
| 276 | void Inode::try_touch_cap(mds_rank_t mds) |
| 277 | { |
no outgoing calls
no test coverage detected