rq->end_io = NULL;
rq->end_io_data = NULL;
rq->completion_data = NULL;
+ rq->next_rq = NULL;
}
/**
{
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");
return ret;
}
- ret = bsg_register_queue(q, disk->disk_name);
- if (ret) {
- elv_unregister_queue(q);
- kobject_unregister(&q->kobj);
- return ret;
- }
-
return 0;
}
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);