On Mon, 02/13 18:22, Kevin Wolf wrote:
> Mow that blk_insert_bs() requests the BlockBackend permissions for the
Now? :)
> node it attaches to, it can fail. Instead of aborting, pass the errors
> to the callers.
>
[snip]
> @@ -332,11 +348,17 @@ int bdrv_commit(BlockDriverState *bs)
>
> /* FIXME Use real permissions */
> src = blk_new(0, BLK_PERM_ALL);
> - blk_insert_bs(src, bs);
> -
> - /* FIXME Use real permissions */
> backing = blk_new(0, BLK_PERM_ALL);
> - blk_insert_bs(backing, bs->backing->bs);
> +
> + ret = blk_insert_bs(src, bs, NULL);
> + if (ret < 0) {
> + goto ro_cleanup;
> + }
> +
> + ret = blk_insert_bs(backing, bs->backing->bs, NULL);
Some code in this function uses local_err + error_report_err while this and some
others use NULL as errp. It's better to consistently use local_err, something
for another day.
> + if (ret < 0) {
> + goto ro_cleanup;
> + }
>
> length = blk_getlength(src);
> if (length < 0) {