From 105f2cc28ecd92eea671af9f34066dedbaac104b Mon Sep 17 00:00:00 2001 From: Nathan Scott Date: Fri, 17 Sep 2004 06:40:22 +0000 Subject: [PATCH] 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. --- io/pread.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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; -- 2.47.2