[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5 21/42] block: Use CAFs for debug breakpoints
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
Re: [Qemu-devel] [PATCH v5 21/42] block: Use CAFs for debug breakpoints |
Date: |
Fri, 14 Jun 2019 15:29:09 +0000 |
13.06.2019 1:09, Max Reitz wrote:
> When looking for a blkdebug node (which implements debug breakpoints),
> use bdrv_primary_bs() to iterate through the graph, because that is
> where a blkdebug node would be.
>
> Signed-off-by: Max Reitz <address@hidden>
Honestly, don't know why blkdebug is always searched in ->file sequence, but
this
patch obviously supports backing-based filters for blkdebug scenarios, which I
need
for my backup-top series (and have corresponding patch in it, which is not
needed
if this goes first)
Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>
> ---
> block.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/block.c b/block.c
> index 797bec0326..11b7ba8cf6 100644
> --- a/block.c
> +++ b/block.c
> @@ -5097,7 +5097,7 @@ int bdrv_debug_breakpoint(BlockDriverState *bs, const
> char *event,
> const char *tag)
> {
> while (bs && bs->drv && !bs->drv->bdrv_debug_breakpoint) {
> - bs = bs->file ? bs->file->bs : NULL;
> + bs = bdrv_primary_bs(bs);
> }
>
> if (bs && bs->drv && bs->drv->bdrv_debug_breakpoint) {
> @@ -5110,7 +5110,7 @@ int bdrv_debug_breakpoint(BlockDriverState *bs, const
> char *event,
> int bdrv_debug_remove_breakpoint(BlockDriverState *bs, const char *tag)
> {
> while (bs && bs->drv && !bs->drv->bdrv_debug_remove_breakpoint) {
> - bs = bs->file ? bs->file->bs : NULL;
> + bs = bdrv_primary_bs(bs);
> }
>
> if (bs && bs->drv && bs->drv->bdrv_debug_remove_breakpoint) {
> @@ -5123,7 +5123,7 @@ int bdrv_debug_remove_breakpoint(BlockDriverState *bs,
> const char *tag)
> int bdrv_debug_resume(BlockDriverState *bs, const char *tag)
> {
> while (bs && (!bs->drv || !bs->drv->bdrv_debug_resume)) {
> - bs = bs->file ? bs->file->bs : NULL;
> + bs = bdrv_primary_bs(bs);
> }
>
> if (bs && bs->drv && bs->drv->bdrv_debug_resume) {
> @@ -5136,7 +5136,7 @@ int bdrv_debug_resume(BlockDriverState *bs, const char
> *tag)
> bool bdrv_debug_is_suspended(BlockDriverState *bs, const char *tag)
> {
> while (bs && bs->drv && !bs->drv->bdrv_debug_is_suspended) {
> - bs = bs->file ? bs->file->bs : NULL;
> + bs = bdrv_primary_bs(bs);
> }
>
> if (bs && bs->drv && bs->drv->bdrv_debug_is_suspended) {
>
--
Best regards,
Vladimir
- Re: [Qemu-devel] [PATCH v5 15/42] block: Re-evaluate backing file handling in reopen, (continued)
[Qemu-devel] [PATCH v5 16/42] block: Use child access functions when flushing, Max Reitz, 2019/06/12
[Qemu-devel] [PATCH v5 17/42] block: Use CAFs in bdrv_refresh_limits(), Max Reitz, 2019/06/12
[Qemu-devel] [PATCH v5 18/42] block: Use CAFs in bdrv_refresh_filename(), Max Reitz, 2019/06/12
[Qemu-devel] [PATCH v5 21/42] block: Use CAFs for debug breakpoints, Max Reitz, 2019/06/12
- Re: [Qemu-devel] [PATCH v5 21/42] block: Use CAFs for debug breakpoints,
Vladimir Sementsov-Ogievskiy <=
[Qemu-devel] [PATCH v5 20/42] block/snapshot: Fall back to storage child, Max Reitz, 2019/06/12
[Qemu-devel] [PATCH v5 23/42] blockdev: Use CAF in external_snapshot_prepare(), Max Reitz, 2019/06/12