|
@@ -168,8 +168,9 @@ static void release_pages_by_pfn(const u32 pfns[], unsigned int num)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static void leak_balloon(struct virtio_balloon *vb, size_t num)
|
|
|
+static unsigned leak_balloon(struct virtio_balloon *vb, size_t num)
|
|
|
{
|
|
|
+ unsigned num_freed_pages;
|
|
|
struct page *page;
|
|
|
struct balloon_dev_info *vb_dev_info = &vb->vb_dev_info;
|
|
|
|
|
@@ -186,6 +187,7 @@ static void leak_balloon(struct virtio_balloon *vb, size_t num)
|
|
|
vb->num_pages -= VIRTIO_BALLOON_PAGES_PER_PAGE;
|
|
|
}
|
|
|
|
|
|
+ num_freed_pages = vb->num_pfns;
|
|
|
/*
|
|
|
* Note that if
|
|
|
* virtio_has_feature(vdev, VIRTIO_BALLOON_F_MUST_TELL_HOST);
|
|
@@ -195,6 +197,7 @@ static void leak_balloon(struct virtio_balloon *vb, size_t num)
|
|
|
tell_host(vb, vb->deflate_vq);
|
|
|
mutex_unlock(&vb->balloon_lock);
|
|
|
release_pages_by_pfn(vb->pfns, vb->num_pfns);
|
|
|
+ return num_freed_pages;
|
|
|
}
|
|
|
|
|
|
static inline void update_stat(struct virtio_balloon *vb, int idx,
|