From: Nathan Scott Date: Fri, 17 Sep 2004 06:40:22 +0000 (+0000) Subject: Fix xfs_io request size handling botch in alloc_buffer when going from larger to... X-Git-Tag: v2.7.0~69 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=105f2cc28ecd92eea671af9f34066dedbaac104b;p=thirdparty%2Fxfsprogs-dev.git Fix xfs_io request size handling botch in alloc_buffer when going from larger to smaller request sizes. Merge of xfs-cmds-melb:slinx:19497a by kenmcd. --- diff --git a/io/pread.c b/io/pread.c index ed0d20e6c..47ae5cf01 100644 --- a/io/pread.c +++ b/io/pread.c @@ -57,6 +57,7 @@ pread_help(void) } void *buffer; +ssize_t highwater; ssize_t buffersize; int @@ -65,16 +66,18 @@ alloc_buffer( int uflag, unsigned int seed) { - if (bsize > buffersize) { + if (bsize > highwater) { if (buffer) free(buffer); - buffer = memalign(pagesize, buffersize = bsize); + buffer = memalign(pagesize, bsize); if (!buffer) { perror("memalign"); - buffersize = 0; + highwater = buffersize = 0; return -1; } + highwater = bsize; } + buffersize = bsize; if (!uflag) memset(buffer, seed, buffersize); return 0;