diff options
author | Jens Axboe <axboe@kernel.dk> | 2013-11-27 19:12:58 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2013-11-27 19:12:58 -0700 |
commit | e345d767f6530ec9cb0aabab7ea248072a9c6975 (patch) | |
tree | 8c9ff6086915c7303ef4c3e060f68d2734b419b1 | |
parent | c170bbb45febc03ac4d34ba2b8bb55e06104b7e7 (diff) | |
parent | 2f089cb89d2f47702c31bd584c12badc88bbe17c (diff) |
Merge branch 'stable/for-jens-3.13-take-two' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip into for-linus
-rw-r--r-- | drivers/block/xen-blkfront.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index 432db1b59b0..c4a4c900628 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -489,7 +489,7 @@ static int blkif_queue_request(struct request *req) if ((ring_req->operation == BLKIF_OP_INDIRECT) && (i % SEGS_PER_INDIRECT_FRAME == 0)) { - unsigned long pfn; + unsigned long uninitialized_var(pfn); if (segments) kunmap_atomic(segments); @@ -2011,6 +2011,10 @@ static void blkif_release(struct gendisk *disk, fmode_t mode) bdev = bdget_disk(disk, 0); + if (!bdev) { + WARN(1, "Block device %s yanked out from us!\n", disk->disk_name); + goto out_mutex; + } if (bdev->bd_openers) goto out; @@ -2041,6 +2045,7 @@ static void blkif_release(struct gendisk *disk, fmode_t mode) out: bdput(bdev); +out_mutex: mutex_unlock(&blkfront_mutex); } |