* [PATCH v4 0/2] Fixes building nfs on msys2/mingw @ 2020-11-05 12:31 Yonggang Luo 2020-11-05 12:31 ` [PATCH v4 1/2] block: Fixes nfs compiling error " Yonggang Luo ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: Yonggang Luo @ 2020-11-05 12:31 UTC (permalink / raw) To: qemu-devel Cc: Kevin Wolf, qemu-block, QEMU Trivial, Peter Lieven, Max Reitz, Yonggang Luo V3-V4 Use uint64_t instead of blkcnt_t V2-V3 Revise the commit message of * block: enable libnfs on msys2/mingw in cirrus.yml V1-V2 Apply suggestion from Peter Lieven Yonggang Luo (2): block: Fixes nfs compiling error on msys2/mingw block: enable libnfs on msys2/mingw in cirrus.yml .cirrus.yml | 1 + block/nfs.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) -- 2.28.0.windows.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v4 1/2] block: Fixes nfs compiling error on msys2/mingw 2020-11-05 12:31 [PATCH v4 0/2] Fixes building nfs on msys2/mingw Yonggang Luo @ 2020-11-05 12:31 ` Yonggang Luo 2020-11-05 12:31 ` [PATCH v4 2/2] block: enable libnfs on msys2/mingw in cirrus.yml Yonggang Luo 2020-11-05 16:29 ` [PATCH v4 0/2] Fixes building nfs on msys2/mingw Max Reitz 2 siblings, 0 replies; 4+ messages in thread From: Yonggang Luo @ 2020-11-05 12:31 UTC (permalink / raw) To: qemu-devel Cc: Kevin Wolf, qemu-block, QEMU Trivial, Peter Lieven, Max Reitz, Yonggang Luo These compiling errors are fixed: ../block/nfs.c:27:10: fatal error: poll.h: No such file or directory 27 | #include <poll.h> | ^~~~~~~~ compilation terminated. ../block/nfs.c:63:5: error: unknown type name 'blkcnt_t' 63 | blkcnt_t st_blocks; | ^~~~~~~~ ../block/nfs.c: In function 'nfs_client_open': ../block/nfs.c:550:27: error: 'struct _stat64' has no member named 'st_blocks' 550 | client->st_blocks = st.st_blocks; | ^ ../block/nfs.c: In function 'nfs_get_allocated_file_size': ../block/nfs.c:751:41: error: 'struct _stat64' has no member named 'st_blocks' 751 | return (task.ret < 0 ? task.ret : st.st_blocks * 512); | ^ ../block/nfs.c: In function 'nfs_reopen_prepare': ../block/nfs.c:805:31: error: 'struct _stat64' has no member named 'st_blocks' 805 | client->st_blocks = st.st_blocks; | ^ ../block/nfs.c: In function 'nfs_get_allocated_file_size': ../block/nfs.c:752:1: error: control reaches end of non-void function [-Werror=return-type] 752 | } | ^ On msys2/mingw, there is no st_blocks in struct _stat64 yet, we disable the usage of it on msys2/mingw, and create a typedef long long blkcnt_t; for further implementation Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> --- block/nfs.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/block/nfs.c b/block/nfs.c index f86e660374..77905f516d 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -24,7 +24,9 @@ #include "qemu/osdep.h" +#if !defined(_WIN32) #include <poll.h> +#endif #include "qemu/config-file.h" #include "qemu/error-report.h" #include "qapi/error.h" @@ -58,7 +60,7 @@ typedef struct NFSClient { bool has_zero_init; AioContext *aio_context; QemuMutex mutex; - blkcnt_t st_blocks; + uint64_t st_blocks; bool cache_used; NFSServer *server; char *path; @@ -545,7 +547,9 @@ static int64_t nfs_client_open(NFSClient *client, BlockdevOptionsNfs *opts, } ret = DIV_ROUND_UP(st.st_size, BDRV_SECTOR_SIZE); +#if !defined(_WIN32) client->st_blocks = st.st_blocks; +#endif client->has_zero_init = S_ISREG(st.st_mode); *strp = '/'; goto out; @@ -706,6 +710,7 @@ static int nfs_has_zero_init(BlockDriverState *bs) return client->has_zero_init; } +#if !defined(_WIN32) /* Called (via nfs_service) with QemuMutex held. */ static void nfs_get_allocated_file_size_cb(int ret, struct nfs_context *nfs, void *data, @@ -748,6 +753,7 @@ static int64_t nfs_get_allocated_file_size(BlockDriverState *bs) return (task.ret < 0 ? task.ret : st.st_blocks * 512); } +#endif static int coroutine_fn nfs_file_co_truncate(BlockDriverState *bs, int64_t offset, bool exact, @@ -800,7 +806,9 @@ static int nfs_reopen_prepare(BDRVReopenState *state, nfs_get_error(client->context)); return ret; } +#if !defined(_WIN32) client->st_blocks = st.st_blocks; +#endif } return 0; @@ -869,7 +877,10 @@ static BlockDriver bdrv_nfs = { .create_opts = &nfs_create_opts, .bdrv_has_zero_init = nfs_has_zero_init, +/* libnfs does not provide the allocated filesize of a file on win32. */ +#if !defined(_WIN32) .bdrv_get_allocated_file_size = nfs_get_allocated_file_size, +#endif .bdrv_co_truncate = nfs_file_co_truncate, .bdrv_file_open = nfs_file_open, -- 2.28.0.windows.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v4 2/2] block: enable libnfs on msys2/mingw in cirrus.yml 2020-11-05 12:31 [PATCH v4 0/2] Fixes building nfs on msys2/mingw Yonggang Luo 2020-11-05 12:31 ` [PATCH v4 1/2] block: Fixes nfs compiling error " Yonggang Luo @ 2020-11-05 12:31 ` Yonggang Luo 2020-11-05 16:29 ` [PATCH v4 0/2] Fixes building nfs on msys2/mingw Max Reitz 2 siblings, 0 replies; 4+ messages in thread From: Yonggang Luo @ 2020-11-05 12:31 UTC (permalink / raw) To: qemu-devel Cc: Kevin Wolf, qemu-block, QEMU Trivial, Peter Lieven, Max Reitz, Yonggang Luo Initially, libnfs has not been enabled, and now it's fixed, so enable it on cirrus. Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> --- .cirrus.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.cirrus.yml b/.cirrus.yml index 900437dd2a..f0209b7a3e 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -109,6 +109,7 @@ windows_msys2_task: mingw-w64-x86_64-cyrus-sasl \ mingw-w64-x86_64-curl \ mingw-w64-x86_64-gnutls \ + mingw-w64-x86_64-libnfs \ " bitsadmin /transfer msys_download /dynamic /download /priority FOREGROUND ` https://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-python-sphinx-2.3.1-1-any.pkg.tar.xz ` -- 2.28.0.windows.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v4 0/2] Fixes building nfs on msys2/mingw 2020-11-05 12:31 [PATCH v4 0/2] Fixes building nfs on msys2/mingw Yonggang Luo 2020-11-05 12:31 ` [PATCH v4 1/2] block: Fixes nfs compiling error " Yonggang Luo 2020-11-05 12:31 ` [PATCH v4 2/2] block: enable libnfs on msys2/mingw in cirrus.yml Yonggang Luo @ 2020-11-05 16:29 ` Max Reitz 2 siblings, 0 replies; 4+ messages in thread From: Max Reitz @ 2020-11-05 16:29 UTC (permalink / raw) To: Yonggang Luo, qemu-devel Cc: Kevin Wolf, QEMU Trivial, Peter Lieven, qemu-block On 05.11.20 13:31, Yonggang Luo wrote: > V3-V4 > Use uint64_t instead of blkcnt_t > V2-V3 > Revise the commit message of > * block: enable libnfs on msys2/mingw in cirrus.yml > > V1-V2 > Apply suggestion from Peter Lieven > > Yonggang Luo (2): > block: Fixes nfs compiling error on msys2/mingw > block: enable libnfs on msys2/mingw in cirrus.yml > > .cirrus.yml | 1 + > block/nfs.c | 13 ++++++++++++- > 2 files changed, 13 insertions(+), 1 deletion(-) Thanks! Applied to my block branch: https://git.xanclic.moe/XanClic/qemu/commits/branch/block Max ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-11-05 16:32 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-11-05 12:31 [PATCH v4 0/2] Fixes building nfs on msys2/mingw Yonggang Luo 2020-11-05 12:31 ` [PATCH v4 1/2] block: Fixes nfs compiling error " Yonggang Luo 2020-11-05 12:31 ` [PATCH v4 2/2] block: enable libnfs on msys2/mingw in cirrus.yml Yonggang Luo 2020-11-05 16:29 ` [PATCH v4 0/2] Fixes building nfs on msys2/mingw Max Reitz
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).