@@ -7,5 +7,6 @@ struct kvm;
void virtio_blk__init(struct kvm *kvm, struct disk_image *disk);
void virtio_blk__init_all(struct kvm *kvm);
+void virtio_blk__delete_all(struct kvm *kvm);
#endif /* KVM__BLK_VIRTIO_H */
@@ -615,6 +615,8 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix)
exit_code = 1;
}
+ virtio_blk__delete_all(kvm);
+
disk_image__close_all(kvm->disks, image_count);
kvm__delete(kvm);
@@ -328,3 +328,11 @@ void virtio_blk__init_all(struct kvm *kvm)
for (i = 0; i < kvm->ndisks; i++)
virtio_blk__init(kvm, kvm->disks[i]);
}
+
+void virtio_blk__delete_all(struct kvm *kvm)
+{
+ int i;
+
+ for (i = 0; i < kvm->ndisks; i++)
+ free(bdevs[i]);
+}
Add a new function virtio_blk__delete() goes through array of block devices and releases memory allocated for block device. Signed-off-by: Prasad Joshi <prasadjoshi124@gmail.com> --- tools/kvm/include/kvm/virtio-blk.h | 1 + tools/kvm/kvm-run.c | 2 ++ tools/kvm/virtio/blk.c | 8 ++++++++ 3 files changed, 11 insertions(+), 0 deletions(-)