]> git.karo-electronics.de Git - karo-tx-linux.git/commit
s390/dasd: enable raw_track_access reads without direct I/O
authorStefan Weinhuber <wein@de.ibm.com>
Fri, 16 Aug 2013 13:57:32 +0000 (15:57 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 20 Aug 2013 10:36:34 +0000 (12:36 +0200)
commitc994fec3af4e6708896dcc323ea7807b329b6fe9
treef8f957884181a14e35ac12626b8165c47cdf5a47
parentc4a6394d630d86f2fe1e37100bd2852572260ef3
s390/dasd: enable raw_track_access reads without direct I/O

The ECKD protocol supports reading of tracks with arbitrary format as
raw track images. The DASD device driver supports this in its
raw_track_access mode. In this mode it maps each track to sixteen 4096
byte sectors and rejects all requests that are not properly aligned to
this mapping.

An application that wants to use a DASD in raw_track_access mode will
usually use direct I/O to make sure that properly aligned requests are
directly submitted to the driver. However, applications that are not
aware of this mode, e.g. udev, will encounter I/O errors.

To make the use without direct I/O possible and avoid this kind of
alignment errors, we now pad unaligned read requests with a dummy
page, so that we can always read full tracks.  Please note that
writing is still only possible for full track images that are properly
aligned.

Signed-off-by: Stefan Weinhuber <wein@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/block/dasd_eckd.c