quorum.c (ae2b87341b5ddb0dcb1b3f2d4f586ef18de75873) quorum.c (c86422c5549c0983b4b4525b8f56a1c69dd67aa1)
1/*
2 * Quorum Block filter
3 *
4 * Copyright (C) 2012-2014 Nodalink, EURL.
5 *
6 * Author:
7 * Benoît Canet <benoit.canet@irqsave.net>
8 *

--- 740 unchanged lines hidden (view full) ---

749 int64_t offset, int64_t bytes,
750 BdrvRequestFlags flags)
751
752{
753 return quorum_co_pwritev(bs, offset, bytes, NULL,
754 flags | BDRV_REQ_ZERO_WRITE);
755}
756
1/*
2 * Quorum Block filter
3 *
4 * Copyright (C) 2012-2014 Nodalink, EURL.
5 *
6 * Author:
7 * Benoît Canet <benoit.canet@irqsave.net>
8 *

--- 740 unchanged lines hidden (view full) ---

749 int64_t offset, int64_t bytes,
750 BdrvRequestFlags flags)
751
752{
753 return quorum_co_pwritev(bs, offset, bytes, NULL,
754 flags | BDRV_REQ_ZERO_WRITE);
755}
756
757static int64_t quorum_getlength(BlockDriverState *bs)
757static int64_t coroutine_fn quorum_co_getlength(BlockDriverState *bs)
758{
759 BDRVQuorumState *s = bs->opaque;
760 int64_t result;
761 int i;
762
763 /* check that all file have the same length */
758{
759 BDRVQuorumState *s = bs->opaque;
760 int64_t result;
761 int i;
762
763 /* check that all file have the same length */
764 result = bdrv_getlength(s->children[0]->bs);
764 result = bdrv_co_getlength(s->children[0]->bs);
765 if (result < 0) {
766 return result;
767 }
768 for (i = 1; i < s->num_children; i++) {
765 if (result < 0) {
766 return result;
767 }
768 for (i = 1; i < s->num_children; i++) {
769 int64_t value = bdrv_getlength(s->children[i]->bs);
769 int64_t value = bdrv_co_getlength(s->children[i]->bs);
770 if (value < 0) {
771 return value;
772 }
773 if (value != result) {
774 return -EIO;
775 }
776 }
777

--- 500 unchanged lines hidden (view full) ---

1278 .bdrv_open = quorum_open,
1279 .bdrv_close = quorum_close,
1280 .bdrv_gather_child_options = quorum_gather_child_options,
1281 .bdrv_dirname = quorum_dirname,
1282 .bdrv_co_block_status = quorum_co_block_status,
1283
1284 .bdrv_co_flush = quorum_co_flush,
1285
770 if (value < 0) {
771 return value;
772 }
773 if (value != result) {
774 return -EIO;
775 }
776 }
777

--- 500 unchanged lines hidden (view full) ---

1278 .bdrv_open = quorum_open,
1279 .bdrv_close = quorum_close,
1280 .bdrv_gather_child_options = quorum_gather_child_options,
1281 .bdrv_dirname = quorum_dirname,
1282 .bdrv_co_block_status = quorum_co_block_status,
1283
1284 .bdrv_co_flush = quorum_co_flush,
1285
1286 .bdrv_getlength = quorum_getlength,
1286 .bdrv_co_getlength = quorum_co_getlength,
1287
1288 .bdrv_co_preadv = quorum_co_preadv,
1289 .bdrv_co_pwritev = quorum_co_pwritev,
1290 .bdrv_co_pwrite_zeroes = quorum_co_pwrite_zeroes,
1291
1292 .bdrv_add_child = quorum_add_child,
1293 .bdrv_del_child = quorum_del_child,
1294

--- 17 unchanged lines hidden ---
1287
1288 .bdrv_co_preadv = quorum_co_preadv,
1289 .bdrv_co_pwritev = quorum_co_pwritev,
1290 .bdrv_co_pwrite_zeroes = quorum_co_pwrite_zeroes,
1291
1292 .bdrv_add_child = quorum_add_child,
1293 .bdrv_del_child = quorum_del_child,
1294

--- 17 unchanged lines hidden ---