[SCSI] st: fix enlarge_buffer
authorBodo Stroesser <bstroesser@ts.fujitsu.com>
Mon, 2 Dec 2013 17:52:10 +0000 (18:52 +0100)
committerJames Bottomley <JBottomley@Parallels.com>
Fri, 20 Dec 2013 04:56:28 +0000 (20:56 -0800)
commit769989a4a09d7c825e182cf60604c06d8f2f70e4
tree273cb753047de8d2f10cd916acbabc8bc1587af6
parent762a86a901417280b2af9e2004f05d7481f30441
[SCSI] st: fix enlarge_buffer

This patch removes a bug in enlarge_buffer() that can make a
read or write fail under special conditions.

After changing TRY_DIRECT_IO to 0 and ST_MAX_SG to 32 in
st_options.h, a program that writes a first block of 128k and
than a second bigger block (e.g. 256k) fails. The second write
returns errno EOVERFLOW, as enlarge_buffer() checks the sg list
and detects that it already is full.
As enlarge_buffer uses different page allocation orders
depending on the size of the buffer needed, the check does not
make sense.

Signed-off-by: Bodo Stroesser <bstroesser@ts.fujitsu.com>
Acked-by: Kai Mäkisara <kai.makisara@kolumbus.fi>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/st.c
This page took 0.02763 seconds and 5 git commands to generate.