diff options
author | Stefan Weinhuber <wein@de.ibm.com> | 2011-01-05 06:48:03 -0500 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2011-01-05 06:47:30 -0500 |
commit | a4d26c6aeceea330ee5e0fb6b017d57e3b252d29 (patch) | |
tree | eed358de48ff28e4fba73d9925abafa2699a7b6c /drivers/s390/block/dasd_eckd.h | |
parent | ef19298b406f93af4bb249f0776deb8366e97532 (diff) |
[S390] dasd: do path verification for paths added at runtime
When a new path is added at runtime, the CIO layer will call the drivers
path_event callback. The DASD device driver uses this callback to trigger
a path verification for the new path. The driver will use only those
paths for I/O, which have been successfully verified.
Signed-off-by: Stefan Weinhuber <wein@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/block/dasd_eckd.h')
-rw-r--r-- | drivers/s390/block/dasd_eckd.h | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/s390/block/dasd_eckd.h b/drivers/s390/block/dasd_eckd.h index 2150aed541be..5051f374cbcb 100644 --- a/drivers/s390/block/dasd_eckd.h +++ b/drivers/s390/block/dasd_eckd.h | |||
@@ -45,6 +45,7 @@ | |||
45 | #define DASD_ECKD_CCW_PFX 0xE7 | 45 | #define DASD_ECKD_CCW_PFX 0xE7 |
46 | #define DASD_ECKD_CCW_PFX_READ 0xEA | 46 | #define DASD_ECKD_CCW_PFX_READ 0xEA |
47 | #define DASD_ECKD_CCW_RSCK 0xF9 | 47 | #define DASD_ECKD_CCW_RSCK 0xF9 |
48 | #define DASD_ECKD_CCW_RCD 0xFA | ||
48 | 49 | ||
49 | /* | 50 | /* |
50 | * Perform Subsystem Function / Sub-Orders | 51 | * Perform Subsystem Function / Sub-Orders |
@@ -59,6 +60,7 @@ | |||
59 | 60 | ||
60 | 61 | ||
61 | #define FCX_MAX_DATA_FACTOR 65536 | 62 | #define FCX_MAX_DATA_FACTOR 65536 |
63 | #define DASD_ECKD_RCD_DATA_SIZE 256 | ||
62 | 64 | ||
63 | 65 | ||
64 | /***************************************************************************** | 66 | /***************************************************************************** |
@@ -335,12 +337,6 @@ struct dasd_gneq { | |||
335 | __u8 reserved2[22]; | 337 | __u8 reserved2[22]; |
336 | } __attribute__ ((packed)); | 338 | } __attribute__ ((packed)); |
337 | 339 | ||
338 | struct dasd_eckd_path { | ||
339 | __u8 opm; | ||
340 | __u8 ppm; | ||
341 | __u8 npm; | ||
342 | }; | ||
343 | |||
344 | struct dasd_rssd_features { | 340 | struct dasd_rssd_features { |
345 | char feature[256]; | 341 | char feature[256]; |
346 | } __attribute__((packed)); | 342 | } __attribute__((packed)); |
@@ -446,7 +442,6 @@ struct dasd_eckd_private { | |||
446 | struct vd_sneq *vdsneq; | 442 | struct vd_sneq *vdsneq; |
447 | struct dasd_gneq *gneq; | 443 | struct dasd_gneq *gneq; |
448 | 444 | ||
449 | struct dasd_eckd_path path_data; | ||
450 | struct eckd_count count_area[5]; | 445 | struct eckd_count count_area[5]; |
451 | int init_cqr_status; | 446 | int init_cqr_status; |
452 | int uses_cdl; | 447 | int uses_cdl; |