]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
Fix xfs_io request size handling botch in alloc_buffer when going from larger to...
authorNathan Scott <nathans@sgi.com>
Fri, 17 Sep 2004 06:40:22 +0000 (06:40 +0000)
committerNathan Scott <nathans@sgi.com>
Fri, 17 Sep 2004 06:40:22 +0000 (06:40 +0000)
Merge of xfs-cmds-melb:slinx:19497a by kenmcd.

io/pread.c

index ed0d20e6c75dc01816981d90bdb7944a5a8c7c4d..47ae5cf019c944dd0283b897e02fbaf323233460 100644 (file)
@@ -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;