97e2f021f8
Instead of having every block driver which implements bdrv_refresh_filename() copy all of the strong runtime options over to bs->full_open_options, implement this process generically in bdrv_refresh_filename(). This patch only adds this new generic implementation, it does not remove the old functionality. This is done in a follow-up patch. With this patch, some superfluous information (that should never have been there) may be removed from some JSON filenames, as can be seen in the change to iotests 110's and 228's reference outputs. Signed-off-by: Max Reitz <mreitz@redhat.com> Message-id: 20190201192935.18394-24-mreitz@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
85 lines
3.8 KiB
Plaintext
85 lines
3.8 KiB
Plaintext
--- Implicit backing file ---
|
|
|
|
{"execute": "blockdev-add", "arguments": {"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top.img"}, "node-name": "node0"}}
|
|
{"return": {}}
|
|
|
|
bs->filename: TEST_DIR/PID-top.img
|
|
bs->backing_file: TEST_DIR/PID-base.img
|
|
bs->backing->bs->filename: TEST_DIR/PID-base.img
|
|
|
|
{"execute": "blockdev-del", "arguments": {"node-name": "node0"}}
|
|
{"return": {}}
|
|
|
|
--- change-backing-file ---
|
|
|
|
{"execute": "blockdev-add", "arguments": {"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top.img"}, "node-name": "node0"}}
|
|
{"return": {}}
|
|
{"execute": "change-backing-file", "arguments": {"backing-file": "null-co://", "device": "node0", "image-node-name": "node0"}}
|
|
{"return": {}}
|
|
|
|
bs->filename: json:{"backing": {"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-base.img"}}, "driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top.img"}}
|
|
bs->backing_file: null-co://
|
|
bs->backing->bs->filename: TEST_DIR/PID-base.img
|
|
|
|
{"execute": "change-backing-file", "arguments": {"backing-file": "TEST_DIR/PID-base.img", "device": "node0", "image-node-name": "node0"}}
|
|
{"return": {}}
|
|
|
|
bs->filename: TEST_DIR/PID-top.img
|
|
bs->backing_file: TEST_DIR/PID-base.img
|
|
bs->backing->bs->filename: TEST_DIR/PID-base.img
|
|
|
|
{"execute": "change-backing-file", "arguments": {"backing-file": "file:TEST_DIR/PID-base.img", "device": "node0", "image-node-name": "node0"}}
|
|
{"return": {}}
|
|
|
|
bs->filename: json:{"backing": {"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-base.img"}}, "driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top.img"}}
|
|
bs->backing_file: file:TEST_DIR/PID-base.img
|
|
bs->backing->bs->filename: TEST_DIR/PID-base.img
|
|
|
|
{"execute": "blockdev-del", "arguments": {"node-name": "node0"}}
|
|
{"return": {}}
|
|
{"execute": "blockdev-add", "arguments": {"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top.img"}, "node-name": "node0"}}
|
|
{"return": {}}
|
|
|
|
bs->filename: TEST_DIR/PID-top.img
|
|
bs->backing_file: TEST_DIR/PID-base.img
|
|
bs->backing->bs->filename: TEST_DIR/PID-base.img
|
|
|
|
{"execute": "blockdev-del", "arguments": {"node-name": "node0"}}
|
|
{"return": {}}
|
|
|
|
--- Override backing file ---
|
|
|
|
{"execute": "blockdev-add", "arguments": {"driver": "null-co", "node-name": "null"}}
|
|
{"return": {}}
|
|
{"execute": "blockdev-add", "arguments": {"backing": "null", "driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top.img"}, "node-name": "node0"}}
|
|
{"return": {}}
|
|
|
|
bs->filename: json:{"backing": {"driver": "null-co"}, "driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top.img"}}
|
|
bs->backing_file: null-co://
|
|
bs->backing->bs->filename: null-co://
|
|
|
|
{"execute": "blockdev-del", "arguments": {"node-name": "node0"}}
|
|
{"return": {}}
|
|
{"execute": "blockdev-del", "arguments": {"node-name": "null"}}
|
|
{"return": {}}
|
|
{"execute": "blockdev-add", "arguments": {"backing": null, "driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top.img"}, "node-name": "node0"}}
|
|
{"return": {}}
|
|
|
|
bs->filename: json:{"backing": null, "driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top.img"}}
|
|
bs->backing_file: TEST_DIR/PID-base.img
|
|
bs->backing: (none)
|
|
|
|
{"execute": "blockdev-add", "arguments": {"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-base.img"}, "node-name": "original-backing"}}
|
|
{"return": {}}
|
|
{"execute": "blockdev-snapshot", "arguments": {"node": "original-backing", "overlay": "node0"}}
|
|
{"return": {}}
|
|
|
|
bs->filename: json:{"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top.img"}}
|
|
bs->backing_file: TEST_DIR/PID-base.img
|
|
bs->backing->bs->filename: TEST_DIR/PID-base.img
|
|
|
|
{"execute": "blockdev-del", "arguments": {"node-name": "node0"}}
|
|
{"return": {}}
|
|
{"execute": "blockdev-del", "arguments": {"node-name": "original-backing"}}
|
|
{"return": {}}
|