[S390] dcssblk: prevent early access without own make_request function
When loading a dcss segment with the dcssblk driver, sometimes the following kind of message appears: bio too big device dcssblk0 (8 > 0) Buffer I/O error on device dcssblk0, logical block 172016 .. The fix is to move the disk registration after setting the make_request function, to avoid calls into generic_make_request for dcssblock without having the make_request function set up properly. Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Родитель
671756162c
Коммит
436d1bc7fe
|
@ -472,11 +472,11 @@ dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char
|
||||||
if (rc)
|
if (rc)
|
||||||
goto unregister_dev;
|
goto unregister_dev;
|
||||||
|
|
||||||
add_disk(dev_info->gd);
|
|
||||||
|
|
||||||
blk_queue_make_request(dev_info->dcssblk_queue, dcssblk_make_request);
|
blk_queue_make_request(dev_info->dcssblk_queue, dcssblk_make_request);
|
||||||
blk_queue_hardsect_size(dev_info->dcssblk_queue, 4096);
|
blk_queue_hardsect_size(dev_info->dcssblk_queue, 4096);
|
||||||
|
|
||||||
|
add_disk(dev_info->gd);
|
||||||
|
|
||||||
switch (dev_info->segment_type) {
|
switch (dev_info->segment_type) {
|
||||||
case SEG_TYPE_SR:
|
case SEG_TYPE_SR:
|
||||||
case SEG_TYPE_ER:
|
case SEG_TYPE_ER:
|
||||||
|
|
Загрузка…
Ссылка в новой задаче