gluster.c (fcb7e040f5c69ca1f0678f991ab5354488a9e192) gluster.c (c86422c5549c0983b4b4525b8f56a1c69dd67aa1)
1/*
2 * GlusterFS backend for QEMU
3 *
4 * Copyright (C) 2012 Bharata B Rao <bharata@linux.vnet.ibm.com>
5 *
6 * This work is licensed under the terms of the GNU GPL, version 2 or later.
7 * See the COPYING file in the top-level directory.
8 *

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

1313 return -errno;
1314 }
1315
1316 qemu_coroutine_yield();
1317 return acb.ret;
1318}
1319#endif
1320
1/*
2 * GlusterFS backend for QEMU
3 *
4 * Copyright (C) 2012 Bharata B Rao <bharata@linux.vnet.ibm.com>
5 *
6 * This work is licensed under the terms of the GNU GPL, version 2 or later.
7 * See the COPYING file in the top-level directory.
8 *

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

1313 return -errno;
1314 }
1315
1316 qemu_coroutine_yield();
1317 return acb.ret;
1318}
1319#endif
1320
1321static int64_t qemu_gluster_getlength(BlockDriverState *bs)
1321static int64_t coroutine_fn qemu_gluster_co_getlength(BlockDriverState *bs)
1322{
1323 BDRVGlusterState *s = bs->opaque;
1324 int64_t ret;
1325
1326 ret = glfs_lseek(s->fd, 0, SEEK_END);
1327 if (ret < 0) {
1328 return -errno;
1329 } else {

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

1505 * possibly including a partial sector at EOF. */
1506 *pnum = hole - offset;
1507
1508 /*
1509 * We are not allowed to return partial sectors, though, so
1510 * round up if necessary.
1511 */
1512 if (!QEMU_IS_ALIGNED(*pnum, bs->bl.request_alignment)) {
1322{
1323 BDRVGlusterState *s = bs->opaque;
1324 int64_t ret;
1325
1326 ret = glfs_lseek(s->fd, 0, SEEK_END);
1327 if (ret < 0) {
1328 return -errno;
1329 } else {

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

1505 * possibly including a partial sector at EOF. */
1506 *pnum = hole - offset;
1507
1508 /*
1509 * We are not allowed to return partial sectors, though, so
1510 * round up if necessary.
1511 */
1512 if (!QEMU_IS_ALIGNED(*pnum, bs->bl.request_alignment)) {
1513 int64_t file_length = qemu_gluster_getlength(bs);
1513 int64_t file_length = qemu_gluster_co_getlength(bs);
1514 if (file_length > 0) {
1515 /* Ignore errors, this is just a safeguard */
1516 assert(hole == file_length);
1517 }
1518 *pnum = ROUND_UP(*pnum, bs->bl.request_alignment);
1519 }
1520
1521 ret = BDRV_BLOCK_DATA;

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

1554 .instance_size = sizeof(BDRVGlusterState),
1555 .bdrv_file_open = qemu_gluster_open,
1556 .bdrv_reopen_prepare = qemu_gluster_reopen_prepare,
1557 .bdrv_reopen_commit = qemu_gluster_reopen_commit,
1558 .bdrv_reopen_abort = qemu_gluster_reopen_abort,
1559 .bdrv_close = qemu_gluster_close,
1560 .bdrv_co_create = qemu_gluster_co_create,
1561 .bdrv_co_create_opts = qemu_gluster_co_create_opts,
1514 if (file_length > 0) {
1515 /* Ignore errors, this is just a safeguard */
1516 assert(hole == file_length);
1517 }
1518 *pnum = ROUND_UP(*pnum, bs->bl.request_alignment);
1519 }
1520
1521 ret = BDRV_BLOCK_DATA;

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

1554 .instance_size = sizeof(BDRVGlusterState),
1555 .bdrv_file_open = qemu_gluster_open,
1556 .bdrv_reopen_prepare = qemu_gluster_reopen_prepare,
1557 .bdrv_reopen_commit = qemu_gluster_reopen_commit,
1558 .bdrv_reopen_abort = qemu_gluster_reopen_abort,
1559 .bdrv_close = qemu_gluster_close,
1560 .bdrv_co_create = qemu_gluster_co_create,
1561 .bdrv_co_create_opts = qemu_gluster_co_create_opts,
1562 .bdrv_getlength = qemu_gluster_getlength,
1562 .bdrv_co_getlength = qemu_gluster_co_getlength,
1563 .bdrv_get_allocated_file_size = qemu_gluster_allocated_file_size,
1564 .bdrv_co_truncate = qemu_gluster_co_truncate,
1565 .bdrv_co_readv = qemu_gluster_co_readv,
1566 .bdrv_co_writev = qemu_gluster_co_writev,
1567 .bdrv_co_flush_to_disk = qemu_gluster_co_flush_to_disk,
1568#ifdef CONFIG_GLUSTERFS_DISCARD
1569 .bdrv_co_pdiscard = qemu_gluster_co_pdiscard,
1570#endif

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

1583 .instance_size = sizeof(BDRVGlusterState),
1584 .bdrv_file_open = qemu_gluster_open,
1585 .bdrv_reopen_prepare = qemu_gluster_reopen_prepare,
1586 .bdrv_reopen_commit = qemu_gluster_reopen_commit,
1587 .bdrv_reopen_abort = qemu_gluster_reopen_abort,
1588 .bdrv_close = qemu_gluster_close,
1589 .bdrv_co_create = qemu_gluster_co_create,
1590 .bdrv_co_create_opts = qemu_gluster_co_create_opts,
1563 .bdrv_get_allocated_file_size = qemu_gluster_allocated_file_size,
1564 .bdrv_co_truncate = qemu_gluster_co_truncate,
1565 .bdrv_co_readv = qemu_gluster_co_readv,
1566 .bdrv_co_writev = qemu_gluster_co_writev,
1567 .bdrv_co_flush_to_disk = qemu_gluster_co_flush_to_disk,
1568#ifdef CONFIG_GLUSTERFS_DISCARD
1569 .bdrv_co_pdiscard = qemu_gluster_co_pdiscard,
1570#endif

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

1583 .instance_size = sizeof(BDRVGlusterState),
1584 .bdrv_file_open = qemu_gluster_open,
1585 .bdrv_reopen_prepare = qemu_gluster_reopen_prepare,
1586 .bdrv_reopen_commit = qemu_gluster_reopen_commit,
1587 .bdrv_reopen_abort = qemu_gluster_reopen_abort,
1588 .bdrv_close = qemu_gluster_close,
1589 .bdrv_co_create = qemu_gluster_co_create,
1590 .bdrv_co_create_opts = qemu_gluster_co_create_opts,
1591 .bdrv_getlength = qemu_gluster_getlength,
1591 .bdrv_co_getlength = qemu_gluster_co_getlength,
1592 .bdrv_get_allocated_file_size = qemu_gluster_allocated_file_size,
1593 .bdrv_co_truncate = qemu_gluster_co_truncate,
1594 .bdrv_co_readv = qemu_gluster_co_readv,
1595 .bdrv_co_writev = qemu_gluster_co_writev,
1596 .bdrv_co_flush_to_disk = qemu_gluster_co_flush_to_disk,
1597#ifdef CONFIG_GLUSTERFS_DISCARD
1598 .bdrv_co_pdiscard = qemu_gluster_co_pdiscard,
1599#endif

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

1612 .instance_size = sizeof(BDRVGlusterState),
1613 .bdrv_file_open = qemu_gluster_open,
1614 .bdrv_reopen_prepare = qemu_gluster_reopen_prepare,
1615 .bdrv_reopen_commit = qemu_gluster_reopen_commit,
1616 .bdrv_reopen_abort = qemu_gluster_reopen_abort,
1617 .bdrv_close = qemu_gluster_close,
1618 .bdrv_co_create = qemu_gluster_co_create,
1619 .bdrv_co_create_opts = qemu_gluster_co_create_opts,
1592 .bdrv_get_allocated_file_size = qemu_gluster_allocated_file_size,
1593 .bdrv_co_truncate = qemu_gluster_co_truncate,
1594 .bdrv_co_readv = qemu_gluster_co_readv,
1595 .bdrv_co_writev = qemu_gluster_co_writev,
1596 .bdrv_co_flush_to_disk = qemu_gluster_co_flush_to_disk,
1597#ifdef CONFIG_GLUSTERFS_DISCARD
1598 .bdrv_co_pdiscard = qemu_gluster_co_pdiscard,
1599#endif

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

1612 .instance_size = sizeof(BDRVGlusterState),
1613 .bdrv_file_open = qemu_gluster_open,
1614 .bdrv_reopen_prepare = qemu_gluster_reopen_prepare,
1615 .bdrv_reopen_commit = qemu_gluster_reopen_commit,
1616 .bdrv_reopen_abort = qemu_gluster_reopen_abort,
1617 .bdrv_close = qemu_gluster_close,
1618 .bdrv_co_create = qemu_gluster_co_create,
1619 .bdrv_co_create_opts = qemu_gluster_co_create_opts,
1620 .bdrv_getlength = qemu_gluster_getlength,
1620 .bdrv_co_getlength = qemu_gluster_co_getlength,
1621 .bdrv_get_allocated_file_size = qemu_gluster_allocated_file_size,
1622 .bdrv_co_truncate = qemu_gluster_co_truncate,
1623 .bdrv_co_readv = qemu_gluster_co_readv,
1624 .bdrv_co_writev = qemu_gluster_co_writev,
1625 .bdrv_co_flush_to_disk = qemu_gluster_co_flush_to_disk,
1626#ifdef CONFIG_GLUSTERFS_DISCARD
1627 .bdrv_co_pdiscard = qemu_gluster_co_pdiscard,
1628#endif

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

1647 .instance_size = sizeof(BDRVGlusterState),
1648 .bdrv_file_open = qemu_gluster_open,
1649 .bdrv_reopen_prepare = qemu_gluster_reopen_prepare,
1650 .bdrv_reopen_commit = qemu_gluster_reopen_commit,
1651 .bdrv_reopen_abort = qemu_gluster_reopen_abort,
1652 .bdrv_close = qemu_gluster_close,
1653 .bdrv_co_create = qemu_gluster_co_create,
1654 .bdrv_co_create_opts = qemu_gluster_co_create_opts,
1621 .bdrv_get_allocated_file_size = qemu_gluster_allocated_file_size,
1622 .bdrv_co_truncate = qemu_gluster_co_truncate,
1623 .bdrv_co_readv = qemu_gluster_co_readv,
1624 .bdrv_co_writev = qemu_gluster_co_writev,
1625 .bdrv_co_flush_to_disk = qemu_gluster_co_flush_to_disk,
1626#ifdef CONFIG_GLUSTERFS_DISCARD
1627 .bdrv_co_pdiscard = qemu_gluster_co_pdiscard,
1628#endif

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

1647 .instance_size = sizeof(BDRVGlusterState),
1648 .bdrv_file_open = qemu_gluster_open,
1649 .bdrv_reopen_prepare = qemu_gluster_reopen_prepare,
1650 .bdrv_reopen_commit = qemu_gluster_reopen_commit,
1651 .bdrv_reopen_abort = qemu_gluster_reopen_abort,
1652 .bdrv_close = qemu_gluster_close,
1653 .bdrv_co_create = qemu_gluster_co_create,
1654 .bdrv_co_create_opts = qemu_gluster_co_create_opts,
1655 .bdrv_getlength = qemu_gluster_getlength,
1655 .bdrv_co_getlength = qemu_gluster_co_getlength,
1656 .bdrv_get_allocated_file_size = qemu_gluster_allocated_file_size,
1657 .bdrv_co_truncate = qemu_gluster_co_truncate,
1658 .bdrv_co_readv = qemu_gluster_co_readv,
1659 .bdrv_co_writev = qemu_gluster_co_writev,
1660 .bdrv_co_flush_to_disk = qemu_gluster_co_flush_to_disk,
1661#ifdef CONFIG_GLUSTERFS_DISCARD
1662 .bdrv_co_pdiscard = qemu_gluster_co_pdiscard,
1663#endif

--- 18 unchanged lines hidden ---
1656 .bdrv_get_allocated_file_size = qemu_gluster_allocated_file_size,
1657 .bdrv_co_truncate = qemu_gluster_co_truncate,
1658 .bdrv_co_readv = qemu_gluster_co_readv,
1659 .bdrv_co_writev = qemu_gluster_co_writev,
1660 .bdrv_co_flush_to_disk = qemu_gluster_co_flush_to_disk,
1661#ifdef CONFIG_GLUSTERFS_DISCARD
1662 .bdrv_co_pdiscard = qemu_gluster_co_pdiscard,
1663#endif

--- 18 unchanged lines hidden ---