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 --- |