Message ID | 20200907182011.521007-10-kwolf@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | block/export: Add infrastructure and QAPI for block exports | expand |
On 07.09.20 20:19, Kevin Wolf wrote: > qemu-nbd allows use of writethrough cache modes, which mean that write > requests made through NBD will cause a flush before they complete. > Expose the same functionality in block-export-add. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > qapi/block-export.json | 7 ++++++- > blockdev-nbd.c | 6 +++++- > 2 files changed, 11 insertions(+), 2 deletions(-) Reviewed-by: Max Reitz <mreitz@redhat.com>
diff --git a/qapi/block-export.json b/qapi/block-export.json index 7dedd893ab..d95c082a33 100644 --- a/qapi/block-export.json +++ b/qapi/block-export.json @@ -170,10 +170,15 @@ # Describes a block export, i.e. how single node should be exported on an # external interface. # +# @writethrough: If true, caches are flushed after every write request to the +# export before completion is signalled. (since: 5.2; +# default: false) +# # Since: 4.2 ## { 'union': 'BlockExportOptions', - 'base': { 'type': 'BlockExportType' }, + 'base': { 'type': 'BlockExportType', + '*writethrough': 'bool' }, 'discriminator': 'type', 'data': { 'nbd': 'BlockExportOptionsNbd' diff --git a/blockdev-nbd.c b/blockdev-nbd.c index 41d5542987..09247a8ded 100644 --- a/blockdev-nbd.c +++ b/blockdev-nbd.c @@ -216,9 +216,13 @@ BlockExport *nbd_export_create(BlockExportOptions *exp_args, Error **errp) goto out; } + if (!exp_args->has_writethrough) { + exp_args->writethrough = false; + } + exp = nbd_export_new(bs, arg->name, arg->description, arg->bitmap, !arg->writable, !arg->writable, - NULL, false, errp); + NULL, exp_args->writethrough, errp); if (!exp) { goto out; }
qemu-nbd allows use of writethrough cache modes, which mean that write requests made through NBD will cause a flush before they complete. Expose the same functionality in block-export-add. Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- qapi/block-export.json | 7 ++++++- blockdev-nbd.c | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-)