| From 61cecca865280bef4f8a9748d0a9afa5df351ac2 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com> |
| Date: Mon, 15 Sep 2014 11:55:27 +0200 |
| Subject: xen-blkback: fix leak on grant map error path |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com> |
| |
| commit 61cecca865280bef4f8a9748d0a9afa5df351ac2 upstream. |
| |
| Fix leaking a page when a grant mapping has failed. |
| |
| Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> |
| Reported-and-Tested-by: Tao Chen <boby.chen@huawei.com> |
| Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/block/xen-blkback/blkback.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/block/xen-blkback/blkback.c |
| +++ b/drivers/block/xen-blkback/blkback.c |
| @@ -763,6 +763,7 @@ again: |
| BUG_ON(new_map_idx >= segs_to_map); |
| if (unlikely(map[new_map_idx].status != 0)) { |
| pr_debug(DRV_PFX "invalid buffer -- could not remap it\n"); |
| + put_free_pages(blkif, &pages[seg_idx]->page, 1); |
| pages[seg_idx]->handle = BLKBACK_INVALID_HANDLE; |
| ret |= 1; |
| goto next; |