#ifndef __ZVFS_HOOK_SYNC_H__
#define __ZVFS_HOOK_SYNC_H__

#include <sys/types.h>

/*
 * zvfs 无写缓冲区：所有 blob_write 成功即代表数据已落到 SPDK 管理的存储。
 *
 * fsync / fdatasync：
 *   对 zvfs fd 调用 blob_sync_md 同步 blob 元数据（size 等），
 *   然后返回 0。不需要 flush 数据缓冲区。
 *   非 zvfs fd 透传。
 *
 * sync_file_range：
 *   PostgreSQL checkpointer 按范围刷脏页。
 *   zvfs 无页缓存，直接返回 0。
 *   非 zvfs fd 透传。
 */

int fsync(int fd);
int fdatasync(int fd);
int sync_file_range(int fd, off_t offset, off_t nbytes, unsigned int flags);

#endif // __ZVFS_HOOK_SYNC_H__