<< " for " << *in << dendl;
pi->time_warp_seq = m->get_time_warp_seq();
}
+ if (m->fscrypt_file.size())
+ pi->fscrypt_file = m->fscrypt_file;
}
// auth
if (dirty & CEPH_CAP_AUTH_EXCL) {
<< " for " << *in << dendl;
pi->btime = m->get_btime();
}
+ if (m->fscrypt_auth.size())
+ pi->fscrypt_auth = m->fscrypt_auth;
}
}
class MClientCaps final : public SafeMessage {
private:
- static constexpr int HEAD_VERSION = 11;
+ static constexpr int HEAD_VERSION = 12;
static constexpr int COMPAT_VERSION = 1;
public:
/* advisory CLIENT_CAPS_* flags to send to mds */
unsigned flags = 0;
+ std::vector<uint8_t> fscrypt_auth;
+ std::vector<uint8_t> fscrypt_file;
+
int get_caps() const { return head.caps; }
int get_wanted() const { return head.wanted; }
int get_dirty() const { return head.dirty; }
decode(nfiles, p);
decode(nsubdirs, p);
}
+ if (header.version >= 12) {
+ decode(fscrypt_auth, p);
+ decode(fscrypt_file, p);
+ }
}
void encode_payload(uint64_t features) override {
using ceph::encode;
encode(flags, payload);
encode(nfiles, payload);
encode(nsubdirs, payload);
+ encode(fscrypt_auth, payload);
+ encode(fscrypt_file, payload);
}
private:
template<class T, typename... Args>