summaryrefslogtreecommitdiff
path: root/drivers/s390/block/dasd_int.h
diff options
context:
space:
mode:
authorStefan Haberland <stefan.haberland@de.ibm.com>2014-07-18 12:26:01 (GMT)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2014-07-22 07:26:23 (GMT)
commit29b8dd9d4274bca6526e4bb8d4f46dec1f4c15c9 (patch)
tree631cb92a24223b571ea534f28ea7ec0a2950480b /drivers/s390/block/dasd_int.h
parent8fa56aed12f1b0a2828da52280e2efbbf1163ad5 (diff)
downloadlinux-29b8dd9d4274bca6526e4bb8d4f46dec1f4c15c9.tar.xz
dasd: fix error recovery for alias devices during format
Kernel panic or a hanging device during format if an alias device is set offline or I/O errors occur. Omit the error recovery procedure for alias devices and do retries on the base device with full erp. Signed-off-by: Stefan Haberland <stefan.haberland@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/block/dasd_int.h')
-rw-r--r--drivers/s390/block/dasd_int.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h
index 7a14582..2cc188c 100644
--- a/drivers/s390/block/dasd_int.h
+++ b/drivers/s390/block/dasd_int.h
@@ -175,6 +175,7 @@ struct dasd_ccw_req {
struct dasd_block *block; /* the originating block device */
struct dasd_device *memdev; /* the device used to allocate this */
struct dasd_device *startdev; /* device the request is started on */
+ struct dasd_device *basedev; /* base device if no block->base */
void *cpaddr; /* address of ccw or tcw */
unsigned char cpmode; /* 0 = cmd mode, 1 = itcw */
char status; /* status of this request */
@@ -321,7 +322,7 @@ struct dasd_discipline {
int (*term_IO) (struct dasd_ccw_req *);
void (*handle_terminated_request) (struct dasd_ccw_req *);
int (*format_device) (struct dasd_device *,
- struct format_data_t *);
+ struct format_data_t *, int enable_PAV);
int (*free_cp) (struct dasd_ccw_req *, struct request *);
/*