s390/dasd: Fail all requests when DASD_FLAG_ABORTIO is set
Whenever a DASD request encounters a timeout we might need to abort all outstanding requests on this or even other devices. This is especially useful if one wants to fail all devices on one side of a RAID10 configuration, even though only one device exhibited an error. To handle this I've introduced a new device flag DASD_FLAG_ABORTIO. This flag is evaluated in __dasd_process_request_queue() and will invoke blk_abort_request() for all outstanding requests with DASD_CQR_FLAGS_FAILFAST set. This will cause any of these requests to be aborted immediately if the blk_timeout function is activated. The DASD_FLAG_ABORTIO is also evaluated in __dasd_process_request_queue to abort all new request which would have the DASD_CQR_FLAGS_FAILFAST bit set. The flag can be set with the new ioctls 'BIODASDABORTIO' and removed with 'BIODASDALLOWIO'. Signed-off-by:Hannes Reinecke <hare@suse.de> Signed-off-by:
Stefan Weinhuber <wein@de.ibm.com> Signed-off-by:
Martin Schwidefsky <schwidefsky@de.ibm.com>
Showing
- arch/s390/include/uapi/asm/dasd.h 4 additions, 0 deletionsarch/s390/include/uapi/asm/dasd.h
- drivers/s390/block/dasd.c 10 additions, 3 deletionsdrivers/s390/block/dasd.c
- drivers/s390/block/dasd_int.h 3 additions, 0 deletionsdrivers/s390/block/dasd_int.h
- drivers/s390/block/dasd_ioctl.c 59 additions, 0 deletionsdrivers/s390/block/dasd_ioctl.c
Please register or sign in to comment