From a5e90ff89b85f2686830a7371348ca0766554cb1 Mon Sep 17 00:00:00 2001 From: Xavi Hernandez Date: Fri, 11 Apr 2025 16:15:05 +0200 Subject: [PATCH] libcephfs_proxy: fully initialize async I/O structure The ceph_ll_io_info structure has recently been extended to support zerocopy operations. The proxy was initializing just the known members, so, after the zerocopy support, it was passing garbage in some fields, causing failures. This patch completely clears the whole structure to be sure that everything is initialized to its default value. Signed-off-by: Xavi Hernandez --- src/libcephfs_proxy/libcephfsd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libcephfs_proxy/libcephfsd.c b/src/libcephfs_proxy/libcephfsd.c index b48e88b338b8..a5d9d47e9518 100644 --- a/src/libcephfs_proxy/libcephfsd.c +++ b/src/libcephfs_proxy/libcephfsd.c @@ -1558,12 +1558,12 @@ static int32_t libcephfsd_ll_nonblocking_rw(proxy_client_t *client, } io_info = &async_io->io_info; + memset(io_info, 0, sizeof(struct ceph_ll_io_info)); io_info->callback = libcephfsd_ll_nonblocking_rw_cbk; io_info->priv = (void *)(uintptr_t)req->ll_nonblocking_rw.info; io_info->iov = &async_io->iov; io_info->iovcnt = 1; io_info->off = req->ll_nonblocking_rw.off; - io_info->result = 0; io_info->write = req->ll_nonblocking_rw.write; io_info->fsync = req->ll_nonblocking_rw.fsync; io_info->syncdataonly = req->ll_nonblocking_rw.syncdataonly; -- 2.47.3