Message ID | 1365799688-19918-16-git-send-email-kwolf@redhat.com |
---|---|
State | New |
Headers | show |
On 04/12/2013 02:48 PM, Kevin Wolf wrote: > If a filename is passed in the driver-specific options from the command > line, the backing file path from the image is ignored now. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > block.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/block.c b/block.c > index c2d1d2d..3a45c2a 100644 > --- a/block.c > +++ b/block.c > @@ -889,7 +889,9 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDict *options) > } > > bs->open_flags &= ~BDRV_O_NO_BACKING; > - if (bs->backing_file[0] == '\0' && qdict_size(options) == 0) { > + if (qdict_haskey(options, "file.filename")) { > + backing_filename[0] = '\0'; > + } else if (bs->backing_file[0] == '\0' && qdict_size(options) == 0) { Of course, the user can abuse this at their peril, but the flexibility it adds (being able to pass in a /dev/fdset to let the command line specify an open fd as backing file even when open() is forbidden on NFS) is just AWESOME! Looking forward to a QMP counterpart; I'll definitely review that, as libvirt is still reluctant to use fdsets for image manipulation on the command line if we can't follow it up with hot-plug manipulation, but I love where this is heading. Reviewed-by: Eric Blake <eblake@redhat.com>
diff --git a/block.c b/block.c index c2d1d2d..3a45c2a 100644 --- a/block.c +++ b/block.c @@ -889,7 +889,9 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDict *options) } bs->open_flags &= ~BDRV_O_NO_BACKING; - if (bs->backing_file[0] == '\0' && qdict_size(options) == 0) { + if (qdict_haskey(options, "file.filename")) { + backing_filename[0] = '\0'; + } else if (bs->backing_file[0] == '\0' && qdict_size(options) == 0) { QDECREF(options); return 0; }
If a filename is passed in the driver-specific options from the command line, the backing file path from the image is ignored now. Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- block.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)