]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
libcephfs_proxy: add client implementation of nonblocking fsync
authorXavi Hernandez <xhernandez@gmail.com>
Tue, 16 Sep 2025 08:27:21 +0000 (10:27 +0200)
committerXavi Hernandez <xhernandez@gmail.com>
Tue, 20 Jan 2026 09:49:07 +0000 (10:49 +0100)
Signed-off-by: Xavi Hernandez <xhernandez@gmail.com>
src/libcephfs_proxy/libcephfs_proxy.c

index e6996232436d3b75bdf15f62935d5f3bcb24b6dc..eddcf09a56f84d5d0d92c6e24c8aaf00f299244a 100644 (file)
@@ -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;
+}