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