static int nbd_co_writev_1(NbdClientSession *client, int64_t sector_num,

                           int nb_sectors, QEMUIOVector *qiov,

                           int offset)

{

    struct nbd_request request = { .type = NBD_CMD_WRITE };

    struct nbd_reply reply;

    ssize_t ret;



    if (!bdrv_enable_write_cache(client->bs) &&

        (client->nbdflags & NBD_FLAG_SEND_FUA)) {

        request.type |= NBD_CMD_FLAG_FUA;

    }



    request.from = sector_num * 512;

    request.len = nb_sectors * 512;



    nbd_coroutine_start(client, &request);

    ret = nbd_co_send_request(client, &request, qiov, offset);

    if (ret < 0) {

        reply.error = -ret;

    } else {

        nbd_co_receive_reply(client, &request, &reply, NULL, 0);

    }

    nbd_coroutine_end(client, &request);

    return -reply.error;

}

static int nbd_co_writev_1(NbdClientSession *client, int64_t sector_num,

                           int nb_sectors, QEMUIOVector *qiov,

                           int offset)

{

    struct nbd_request request = { .type = NBD_CMD_WRITE };

    struct nbd_reply reply;

    ssize_t ret;



    if (!bdrv_enable_write_cache(client->bs) &&

        (client->nbdflags & NBD_FLAG_SEND_FUA)) {

        request.type |= NBD_CMD_FLAG_FUA;

    }



    request.from = sector_num * 512;

    request.len = nb_sectors * 512;



    nbd_coroutine_start(client, &request);

    ret = nbd_co_send_request(client, &request, qiov, offset);

    if (ret < 0) {

        reply.error = -ret;

    } else {

        nbd_co_receive_reply(client, &request, &reply, NULL, 0);

    }

    nbd_coroutine_end(client, &request);

    return -reply.error;

}

static int FUNC_0(NbdClientSession *VAR_0, int64_t VAR_1,

                           int VAR_2, QEMUIOVector *VAR_3,

                           int VAR_4)

{

    struct nbd_request VAR_5 = { .type = NBD_CMD_WRITE };

    struct nbd_reply VAR_6;

    ssize_t ret;



    if (!bdrv_enable_write_cache(VAR_0->bs) &&

        (VAR_0->nbdflags & NBD_FLAG_SEND_FUA)) {

        VAR_5.type |= NBD_CMD_FLAG_FUA;

    }



    VAR_5.from = VAR_1 * 512;

    VAR_5.len = VAR_2 * 512;



    nbd_coroutine_start(VAR_0, &VAR_5);

    ret = nbd_co_send_request(VAR_0, &VAR_5, VAR_3, VAR_4);

    if (ret < 0) {

        VAR_6.error = -ret;

    } else {

        nbd_co_receive_reply(VAR_0, &VAR_5, &VAR_6, NULL, 0);

    }

    nbd_coroutine_end(VAR_0, &VAR_5);

    return -VAR_6.error;

}

static int FUNC_0(NbdClientSession *VAR_0, int64_t VAR_1,
int VAR_2, QEMUIOVector *VAR_3,
int VAR_4)
{ struct nbd_request VAR_5 = { .type = NBD_CMD_WRITE }; struct nbd_reply VAR_6; ssize_t ret; if (!bdrv_enable_write_cache(VAR_0->bs) &&
(VAR_0->nbdflags & NBD_FLAG_SEND_FUA)) { VAR_5.type |= NBD_CMD_FLAG_FUA; } VAR_5.from = VAR_1 * 512; VAR_5.len = VAR_2 * 512; nbd_coroutine_start(VAR_0, &VAR_5); ret = nbd_co_send_request(VAR_0, &VAR_5, VAR_3, VAR_4); if (ret < 0) { VAR_6.error = -ret; } else { nbd_co_receive_reply(VAR_0, &VAR_5, &VAR_6, NULL, 0); } nbd_coroutine_end(VAR_0, &VAR_5); return -VAR_6.error; }