linux/drivers/s390/block
Stefan Haberland 6933c35a30 s390/dasd: fix list_del corruption after lcu changes
A summary unit check occurs when the lcu updates the PAV configuration
e.g. base PAV assignment or PAV mode at all. This requires the reset
of the drivers internal pavgroups. Therefore the alias devices are
flushed and moved via a temporary list to the active_devices list
where they are not associated with a pavgroup. In conjunction with
updates to the base device the pavgroup may be removed since both
base_list and alias_list are empty. Unfortunately during alias flush
and move to the active_device list from alias_list the pavgroup
pointer is not deleted in the device private structure. This leads to
a list del_corruption if another lcu_update tries to move the device
in the non existent pavgroup.

Fix by removing the pavgroup pointer after the alias device was moved
to the active_devices list.

Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2015-10-15 09:28:15 +02:00
..
dasd_3990_erp.c s390/time: rename tod clock access functions 2013-02-14 15:55:10 +01:00
dasd_alias.c s390/dasd: fix list_del corruption after lcu changes 2015-10-15 09:28:15 +02:00
dasd_devmap.c s390/dasd: add support for control unit initiated reconfiguration 2014-10-09 09:13:54 +02:00
dasd_diag.c s390/diag: add a statistic for diagnose calls 2015-10-14 14:32:06 +02:00
dasd_diag.h s390: remove 31 bit support 2015-03-25 11:49:33 +01:00
dasd_eckd.c s390/cio: introduce pathmask_to_pos 2015-10-14 14:32:04 +02:00
dasd_eckd.h s390/dasd: enhance CUIR scope detection 2015-08-09 21:08:10 +02:00
dasd_eer.c s390/time: rename tod clock access functions 2013-02-14 15:55:10 +01:00
dasd_erp.c s390/dasd: fix statistics for recovered requests 2013-08-28 09:19:34 +02:00
dasd_fba.c s390: remove 31 bit support 2015-03-25 11:49:33 +01:00
dasd_fba.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
dasd_genhd.c s390/block/dasd: remove obsolete while -EBUSY loop 2015-05-20 09:06:17 -06:00
dasd_int.h s390/dasd: fix failing path verification 2015-08-09 21:07:41 +02:00
dasd_ioctl.c s390/dasd: fix camel case 2014-08-01 11:16:18 +02:00
dasd_proc.c s390/dasd: cleanup profiling 2015-01-29 09:19:29 +01:00
dasd.c s390/dasd: mark DASD devices as non rotational 2015-10-14 14:32:00 +02:00
dcssblk.c libnvdimm for 4.3: 2015-09-08 14:35:59 -07:00
Kconfig s390/scm_block: force cluster writes 2012-09-26 15:45:01 +02:00
Makefile s390/scm_block: force cluster writes 2012-09-26 15:45:01 +02:00
scm_blk_cluster.c s390/scm_block: fix off by one during cluster reservation 2015-02-26 09:24:47 +01:00
scm_blk.c s390/scm_block: make the number of reqs per HW req configurable 2014-12-08 09:42:47 +01:00
scm_blk.h s390/scm_block: make the number of reqs per HW req configurable 2014-12-08 09:42:47 +01:00
scm_drv.c s390/scm_block: fix printk format string 2013-03-21 13:35:37 +01:00
xpram.c block: make generic_make_request handle arbitrarily sized bios 2015-08-13 12:31:33 -06:00