Skip to content

Commit

Permalink
block/nfs: Fix 32-bit Windows build
Browse files Browse the repository at this point in the history
libnfs.h declares nfs_fstat() as the following for win32:

  int nfs_fstat(struct nfs_context *nfs, struct nfsfh *nfsfh,
                struct __stat64 *st);

The 'st' parameter should be of type 'struct __stat64'. The
codes happen to build successfully for 64-bit Windows, but it
does not build for 32-bit Windows.

Fixes: 6542aa9 ("block: add native support for NFS")
Fixes: 18a8056 ("block/nfs: cache allocated filesize for read-only files")
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Message-Id: <20220908132817.1831008-6-bmeng.cn@gmail.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
  • Loading branch information
lbmeng authored and kevmw committed Oct 27, 2022
1 parent 142e690 commit ebdebe4
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions block/nfs.c
Expand Up @@ -418,7 +418,11 @@ static int64_t nfs_client_open(NFSClient *client, BlockdevOptionsNfs *opts,
int flags, int open_flags, Error **errp)
{
int64_t ret = -EINVAL;
#ifdef _WIN32
struct __stat64 st;
#else
struct stat st;
#endif
char *file = NULL, *strp = NULL;

qemu_mutex_init(&client->mutex);
Expand Down Expand Up @@ -781,7 +785,11 @@ static int nfs_reopen_prepare(BDRVReopenState *state,
BlockReopenQueue *queue, Error **errp)
{
NFSClient *client = state->bs->opaque;
#ifdef _WIN32
struct __stat64 st;
#else
struct stat st;
#endif
int ret = 0;

if (state->flags & BDRV_O_RDWR && bdrv_is_read_only(state->bs)) {
Expand Down

0 comments on commit ebdebe4

Please sign in to comment.