• Jan Höppner's avatar
    s390/dasd: Add dynamic formatting support for ESE volumes · 5e2b17e7
    Jan Höppner authored
    A dynamic formatting is issued whenever a write request returns with
    either a No Record Found error (Command Mode), Incorrect Length error
    (Transport Mode), or File Protected error (Transport Mode). All three
    cases mean that the tracks in question haven't been initialized in a
    desired format yet.
    
    The part of the volume that was tried to be written on is then formatted
    and the original request is re-queued.
    
    As the formatting will happen during normal I/O operations, it is quite
    likely that there won't be any memory available to build the respective
    request. Another two pages of memory are allocated per volume
    specifically for the dynamic formatting.
    
    The dasd_eckd_build_format() function is extended to make sure that the
    original startdev is reused. Also, all formatting and format check
    functions use the new memory pool exclusively now to reduce complexity.
    
    Read operations will always return zero data when unformatted areas are
    read.
    Signed-off-by: default avatarJan Höppner <hoeppner@linux.ibm.com>
    Reviewed-by: default avatarStefan Haberland <sth@linux.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    5e2b17e7
dasd_eckd.c 170 KB