LIBCEPHFSD_OP_LL_SET_FSCRYPT_POLICY_V2,
LIBCEPHFSD_OP_LL_GET_FSCRYPT_POLICY_V2,
LIBCEPHFSD_OP_LL_IS_ENCRYPTED,
+ LIBCEPHFSD_OP_LL_NONBLOCKING_FSYNC,
/* Add more operations above this comment. */
enum {
LIBCEPHFSD_CBK_NULL = 0,
LIBCEPHFSD_CBK_LL_NONBLOCKING_RW,
+ LIBCEPHFSD_CBK_LL_NONBLOCKING_FSYNC,
/* Add more callbacks above this comment. */
)
);
+PROTO_CALL(ceph_ll_nonblocking_fsync,
+ PROTO_REQ(
+ PROTO_VER(v0,
+ uint64_t cmount;
+ uint64_t info;
+ uint64_t inode;
+ bool syncdataonly;
+ )
+ ),
+ PROTO_ANS(
+ PROTO_VER(v0,
+ int32_t res;
+ )
+ )
+);
+
typedef union _proxy_req {
proxy_link_req_t header;
proxy_ceph_ll_set_fscrypt_policy_v2_req_t ll_set_fscrypt_policy_v2;
proxy_ceph_ll_get_fscrypt_policy_v2_req_t ll_get_fscrypt_policy_v2;
proxy_ceph_ll_is_encrypted_req_t ll_is_encrypted;
+ proxy_ceph_ll_nonblocking_fsync_req_t ll_nonblocking_fsync;
} proxy_req_t;
PROTO_NOTIFY(ceph_ll_nonblocking_readv_writev,
)
);
+PROTO_NOTIFY(ceph_ll_nonblocking_fsync,
+ PROTO_CBK(
+ PROTO_VER(v0,
+ uint64_t info;
+ int64_t res;
+ )
+ )
+);
+
typedef union _proxy_cbk {
proxy_link_req_t header;
proxy_ceph_ll_nonblocking_readv_writev_cbk_t ll_nonblocking_rw;
+ proxy_ceph_ll_nonblocking_fsync_cbk_t ll_nonblocking_fsync;
} proxy_cbk_t;
#endif