Slab allocators: Replace explicit zeroing with __GFP_ZERO
[deliverable/linux.git] / block / ll_rw_blk.c
index 74a5498c29a10c26ee807ee4f7e236c716480d97..d7cadf304168694d9ce542eea5f1c02930331a8a 100644 (file)
@@ -256,6 +256,7 @@ static void rq_init(request_queue_t *q, struct request *rq)
        rq->end_io = NULL;
        rq->end_io_data = NULL;
        rq->completion_data = NULL;
+       rq->next_rq = NULL;
 }
 
 /**
@@ -1828,11 +1829,11 @@ request_queue_t *blk_alloc_queue_node(gfp_t gfp_mask, int node_id)
 {
        request_queue_t *q;
 
-       q = kmem_cache_alloc_node(requestq_cachep, gfp_mask, node_id);
+       q = kmem_cache_alloc_node(requestq_cachep,
+                               gfp_mask | __GFP_ZERO, node_id);
        if (!q)
                return NULL;
 
-       memset(q, 0, sizeof(*q));
        init_timer(&q->unplug_timer);
 
        snprintf(q->kobj.name, KOBJ_NAME_LEN, "%s", "queue");
@@ -4091,13 +4092,6 @@ int blk_register_queue(struct gendisk *disk)
                return ret;
        }
 
-       ret = bsg_register_queue(q, disk->disk_name);
-       if (ret) {
-               elv_unregister_queue(q);
-               kobject_unregister(&q->kobj);
-               return ret;
-       }
-
        return 0;
 }
 
@@ -4106,7 +4100,6 @@ void blk_unregister_queue(struct gendisk *disk)
        request_queue_t *q = disk->queue;
 
        if (q && q->request_fn) {
-               bsg_unregister_queue(q);
                elv_unregister_queue(q);
 
                kobject_uevent(&q->kobj, KOBJ_REMOVE);
This page took 0.028471 seconds and 5 git commands to generate.