block: make generic_make_request handle arbitrarily sized bios
[cascardo/linux.git] / drivers / block / ps3vram.c
index b1612eb..d89fcac 100644 (file)
@@ -593,7 +593,8 @@ out:
        next = bio_list_peek(&priv->list);
        spin_unlock_irq(&priv->lock);
 
-       bio_endio(bio, error);
+       bio->bi_error = error;
+       bio_endio(bio);
        return next;
 }
 
@@ -605,6 +606,8 @@ static void ps3vram_make_request(struct request_queue *q, struct bio *bio)
 
        dev_dbg(&dev->core, "%s\n", __func__);
 
+       blk_queue_split(q, &bio, q->bio_split);
+
        spin_lock_irq(&priv->lock);
        busy = !bio_list_empty(&priv->list);
        bio_list_add(&priv->list, bio);