[S390] cio: fix channel path vary
authorPeter Oberparleiter <peter.oberparleiter@de.ibm.com>
Fri, 18 Dec 2009 16:43:23 +0000 (17:43 +0100)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>
Fri, 18 Dec 2009 16:43:32 +0000 (17:43 +0100)
commitd302e1a5dbe1677a495033a2d310656a55139cdf
treebcf2403ce1f031a576c3166eec62c5e47abab058
parent83e56d0b23f91b70a7e708ce0979a57b6c6a1507
[S390] cio: fix channel path vary

Channel path vary is currently broken: channel paths which are varied
offline are still used by Linux. The reason for this is that:

 * the path mask indicating which paths of an I/O device can be used
   is reset by each internal I/O request
 * the logic that checks if a path group is already in its designated
   target state incorrectly interprets the result "is correctly set"
   as "is correctly set and available"

Fix this by resetting the path mask only for internal I/O requests
which affect the path mask and by correcting the pgid check logic.

Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/ccwreq.c
drivers/s390/cio/device_pgid.c
drivers/s390/cio/io_sch.h