diff --git a/[refs] b/[refs] index b0574ecf2def..c346e8f3a4fb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2a13877c5ef3207a2a5c56250742e60808677f90 +refs/heads/master: bc47df0fa705887242c26c7b040e7cf0170ab1f1 diff --git a/trunk/drivers/block/osdblk.c b/trunk/drivers/block/osdblk.c index 3565d0dd123f..13c1aee6aa3f 100644 --- a/trunk/drivers/block/osdblk.c +++ b/trunk/drivers/block/osdblk.c @@ -66,6 +66,7 @@ #include #include #include +#include #define DRV_NAME "osdblk" #define PFX DRV_NAME ": " @@ -437,6 +438,12 @@ static int osdblk_init_disk(struct osdblk_device *osdev) return rc; } + /* Set our limits to the lower device limits, because osdblk cannot + * sleep when allocating a lower-request and therefore cannot be + * bouncing. + */ + blk_queue_stack_limits(q, osd_request_queue(osdev->osd)); + blk_queue_prep_rq(q, blk_queue_start_tag); blk_queue_ordered(q, QUEUE_ORDERED_DRAIN_FLUSH, osdblk_prepare_flush);