diff options
| author | Jens Axboe <jaxboe@fusionio.com> | 2011-06-02 07:14:15 -0400 |
|---|---|---|
| committer | Jens Axboe <jaxboe@fusionio.com> | 2011-06-02 07:14:15 -0400 |
| commit | e3a57b3ccf5c04934ac43b5b80e32ba51b817288 (patch) | |
| tree | 990d7b323057b9969e7c251fa9fc8c50465b8702 | |
| parent | e2bd9678fc0085acf540dc4cb48ff961cd4d88c0 (diff) | |
| parent | 9b83c771214cf6a256ee875050e6eaf320cf7983 (diff) | |
Merge branch 'for-jens/xen-blkback.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen into for-linus
| -rw-r--r-- | drivers/block/xen-blkback/blkback.c | 10 | ||||
| -rw-r--r-- | drivers/block/xen-blkback/xenbus.c | 3 |
2 files changed, 7 insertions, 6 deletions
diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c index c73910cc28c9..5cf2993a8338 100644 --- a/drivers/block/xen-blkback/blkback.c +++ b/drivers/block/xen-blkback/blkback.c | |||
| @@ -809,11 +809,13 @@ static int __init xen_blkif_init(void) | |||
| 809 | failed_init: | 809 | failed_init: |
| 810 | kfree(blkbk->pending_reqs); | 810 | kfree(blkbk->pending_reqs); |
| 811 | kfree(blkbk->pending_grant_handles); | 811 | kfree(blkbk->pending_grant_handles); |
| 812 | for (i = 0; i < mmap_pages; i++) { | 812 | if (blkbk->pending_pages) { |
| 813 | if (blkbk->pending_pages[i]) | 813 | for (i = 0; i < mmap_pages; i++) { |
| 814 | __free_page(blkbk->pending_pages[i]); | 814 | if (blkbk->pending_pages[i]) |
| 815 | __free_page(blkbk->pending_pages[i]); | ||
| 816 | } | ||
| 817 | kfree(blkbk->pending_pages); | ||
| 815 | } | 818 | } |
| 816 | kfree(blkbk->pending_pages); | ||
| 817 | kfree(blkbk); | 819 | kfree(blkbk); |
| 818 | blkbk = NULL; | 820 | blkbk = NULL; |
| 819 | return rc; | 821 | return rc; |
diff --git a/drivers/block/xen-blkback/xenbus.c b/drivers/block/xen-blkback/xenbus.c index 34570823355b..6cc0db1bf522 100644 --- a/drivers/block/xen-blkback/xenbus.c +++ b/drivers/block/xen-blkback/xenbus.c | |||
| @@ -357,14 +357,13 @@ static int xen_vbd_create(struct xen_blkif *blkif, blkif_vdev_t handle, | |||
| 357 | } | 357 | } |
| 358 | 358 | ||
| 359 | vbd->bdev = bdev; | 359 | vbd->bdev = bdev; |
| 360 | vbd->size = vbd_sz(vbd); | ||
| 361 | |||
| 362 | if (vbd->bdev->bd_disk == NULL) { | 360 | if (vbd->bdev->bd_disk == NULL) { |
| 363 | DPRINTK("xen_vbd_create: device %08x doesn't exist.\n", | 361 | DPRINTK("xen_vbd_create: device %08x doesn't exist.\n", |
| 364 | vbd->pdevice); | 362 | vbd->pdevice); |
| 365 | xen_vbd_free(vbd); | 363 | xen_vbd_free(vbd); |
| 366 | return -ENOENT; | 364 | return -ENOENT; |
| 367 | } | 365 | } |
| 366 | vbd->size = vbd_sz(vbd); | ||
| 368 | 367 | ||
| 369 | if (vbd->bdev->bd_disk->flags & GENHD_FL_CD || cdrom) | 368 | if (vbd->bdev->bd_disk->flags & GENHD_FL_CD || cdrom) |
| 370 | vbd->type |= VDISK_CDROM; | 369 | vbd->type |= VDISK_CDROM; |
