summary refs log tree commit diff stats
path: root/block.c
diff options
context:
space:
mode:
authorFam Zheng <famz@redhat.com>2013-11-20 10:01:54 +0800
committerKevin Wolf <kwolf@redhat.com>2013-11-29 13:40:37 +0100
commit4cc70e933731ebf4309e1f1ce90973a0de04f28f (patch)
tree254369a947f01aa34c7c5e1e766ded66919d7b4f /block.c
parent5b43dbb699599cdb9f75a624cb28d4f709ad2cdf (diff)
downloadfocaccia-qemu-4cc70e933731ebf4309e1f1ce90973a0de04f28f.tar.gz
focaccia-qemu-4cc70e933731ebf4309e1f1ce90973a0de04f28f.zip
blkdebug: add "remove_break" command
This adds "remove_break" command which is the reverse of blkdebug
command "break": it removes all breakpoints with given tag and resumes
all the requests.

Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'block.c')
-rw-r--r--block.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/block.c b/block.c
index 765bbae41a..faa52d4750 100644
--- a/block.c
+++ b/block.c
@@ -3525,6 +3525,19 @@ int bdrv_debug_breakpoint(BlockDriverState *bs, const char *event,
     return -ENOTSUP;
 }
 
+int bdrv_debug_remove_breakpoint(BlockDriverState *bs, const char *tag)
+{
+    while (bs && bs->drv && !bs->drv->bdrv_debug_remove_breakpoint) {
+        bs = bs->file;
+    }
+
+    if (bs && bs->drv && bs->drv->bdrv_debug_remove_breakpoint) {
+        return bs->drv->bdrv_debug_remove_breakpoint(bs, tag);
+    }
+
+    return -ENOTSUP;
+}
+
 int bdrv_debug_resume(BlockDriverState *bs, const char *tag)
 {
     while (bs && bs->drv && !bs->drv->bdrv_debug_resume) {