From: Xavi Hernandez Date: Tue, 16 Sep 2025 08:27:21 +0000 (+0200) Subject: libcephfs_proxy: add client implementation of nonblocking fsync X-Git-Tag: v21.0.0~331^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dc267c7b6644d767215ad14f74ff122238249840;p=ceph.git libcephfs_proxy: add client implementation of nonblocking fsync Signed-off-by: Xavi Hernandez --- diff --git a/src/libcephfs_proxy/libcephfs_proxy.c b/src/libcephfs_proxy/libcephfs_proxy.c index e6996232436d..eddcf09a56f8 100644 --- a/src/libcephfs_proxy/libcephfs_proxy.c +++ b/src/libcephfs_proxy/libcephfs_proxy.c @@ -1177,3 +1177,27 @@ __public int32_t ceph_ll_is_encrypted(struct ceph_mount_info *cmount, return CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_IS_ENCRYPTED, req, ans); } + +__public int64_t ceph_ll_nonblocking_fsync(struct ceph_mount_info *cmount, + Inode *in, + struct ceph_ll_io_info *io_info) +{ + CEPH_REQ(ceph_ll_nonblocking_fsync, req, 0, ans, 0); + int32_t err; + + if ((cmount->neg.v1.enabled & PROXY_FEAT_ASYNC_IO) == 0) { + return -EOPNOTSUPP; + } + + req.info = ptr_checksum(&cmount->async.random, io_info); + req.inode = ptr_value(in); + req.syncdataonly = io_info->syncdataonly; + + err = CEPH_PROCESS(cmount, LIBCEPHFSD_OP_LL_NONBLOCKING_FSYNC, req, + ans); + if (err < 0) { + return err; + } + + return ans.res; +}