nvme.c (09d9fc97f8b0bf30f3c55a5ae3a20f799fd3e5f2) | nvme.c (c86422c5549c0983b4b4525b8f56a1c69dd67aa1) |
---|---|
1/* 2 * NVMe block driver based on vfio 3 * 4 * Copyright 2016 - 2018 Red Hat, Inc. 5 * 6 * Authors: 7 * Fam Zheng <famz@redhat.com> 8 * Paolo Bonzini <pbonzini@redhat.com> --- 988 unchanged lines hidden (view full) --- 997 } 998 } 999 return 0; 1000fail: 1001 nvme_close(bs); 1002 return ret; 1003} 1004 | 1/* 2 * NVMe block driver based on vfio 3 * 4 * Copyright 2016 - 2018 Red Hat, Inc. 5 * 6 * Authors: 7 * Fam Zheng <famz@redhat.com> 8 * Paolo Bonzini <pbonzini@redhat.com> --- 988 unchanged lines hidden (view full) --- 997 } 998 } 999 return 0; 1000fail: 1001 nvme_close(bs); 1002 return ret; 1003} 1004 |
1005static int64_t nvme_getlength(BlockDriverState *bs) | 1005static int64_t coroutine_fn nvme_co_getlength(BlockDriverState *bs) |
1006{ 1007 BDRVNVMeState *s = bs->opaque; 1008 return s->nsze << s->blkshift; 1009} 1010 1011static uint32_t nvme_get_blocksize(BlockDriverState *bs) 1012{ 1013 BDRVNVMeState *s = bs->opaque; --- 467 unchanged lines hidden (view full) --- 1481 int64_t cur_length; 1482 1483 if (prealloc != PREALLOC_MODE_OFF) { 1484 error_setg(errp, "Unsupported preallocation mode '%s'", 1485 PreallocMode_str(prealloc)); 1486 return -ENOTSUP; 1487 } 1488 | 1006{ 1007 BDRVNVMeState *s = bs->opaque; 1008 return s->nsze << s->blkshift; 1009} 1010 1011static uint32_t nvme_get_blocksize(BlockDriverState *bs) 1012{ 1013 BDRVNVMeState *s = bs->opaque; --- 467 unchanged lines hidden (view full) --- 1481 int64_t cur_length; 1482 1483 if (prealloc != PREALLOC_MODE_OFF) { 1484 error_setg(errp, "Unsupported preallocation mode '%s'", 1485 PreallocMode_str(prealloc)); 1486 return -ENOTSUP; 1487 } 1488 |
1489 cur_length = nvme_getlength(bs); | 1489 cur_length = nvme_co_getlength(bs); |
1490 if (offset != cur_length && exact) { 1491 error_setg(errp, "Cannot resize NVMe devices"); 1492 return -ENOTSUP; 1493 } else if (offset > cur_length) { 1494 error_setg(errp, "Cannot grow NVMe devices"); 1495 return -EINVAL; 1496 } 1497 --- 140 unchanged lines hidden (view full) --- 1638 .instance_size = sizeof(BDRVNVMeState), 1639 1640 .bdrv_co_create_opts = bdrv_co_create_opts_simple, 1641 .create_opts = &bdrv_create_opts_simple, 1642 1643 .bdrv_parse_filename = nvme_parse_filename, 1644 .bdrv_file_open = nvme_file_open, 1645 .bdrv_close = nvme_close, | 1490 if (offset != cur_length && exact) { 1491 error_setg(errp, "Cannot resize NVMe devices"); 1492 return -ENOTSUP; 1493 } else if (offset > cur_length) { 1494 error_setg(errp, "Cannot grow NVMe devices"); 1495 return -EINVAL; 1496 } 1497 --- 140 unchanged lines hidden (view full) --- 1638 .instance_size = sizeof(BDRVNVMeState), 1639 1640 .bdrv_co_create_opts = bdrv_co_create_opts_simple, 1641 .create_opts = &bdrv_create_opts_simple, 1642 1643 .bdrv_parse_filename = nvme_parse_filename, 1644 .bdrv_file_open = nvme_file_open, 1645 .bdrv_close = nvme_close, |
1646 .bdrv_getlength = nvme_getlength, | 1646 .bdrv_co_getlength = nvme_co_getlength, |
1647 .bdrv_probe_blocksizes = nvme_probe_blocksizes, 1648 .bdrv_co_truncate = nvme_co_truncate, 1649 1650 .bdrv_co_preadv = nvme_co_preadv, 1651 .bdrv_co_pwritev = nvme_co_pwritev, 1652 1653 .bdrv_co_pwrite_zeroes = nvme_co_pwrite_zeroes, 1654 .bdrv_co_pdiscard = nvme_co_pdiscard, --- 25 unchanged lines hidden --- | 1647 .bdrv_probe_blocksizes = nvme_probe_blocksizes, 1648 .bdrv_co_truncate = nvme_co_truncate, 1649 1650 .bdrv_co_preadv = nvme_co_preadv, 1651 .bdrv_co_pwritev = nvme_co_pwritev, 1652 1653 .bdrv_co_pwrite_zeroes = nvme_co_pwrite_zeroes, 1654 .bdrv_co_pdiscard = nvme_co_pdiscard, --- 25 unchanged lines hidden --- |