From 15dc59b94d8b46ae44b2f90308d120ca3c4e0a1b Mon Sep 17 00:00:00 2001 From: Simon Schubert Date: Thu, 15 Dec 2005 22:20:49 +0000 Subject: [PATCH] Do not try to write sparse files when using zlib. Noticed-by: Joe Talbott Obtained-from: FreeBSD --- sbin/savecore/savecore.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sbin/savecore/savecore.c b/sbin/savecore/savecore.c index 0cd8ebccff..180e416810 100644 --- a/sbin/savecore/savecore.c +++ b/sbin/savecore/savecore.c @@ -32,8 +32,8 @@ * * @(#) Copyright (c) 1986, 1992, 1993 The Regents of the University of California. All rights reserved. * @(#)savecore.c 8.3 (Berkeley) 1/2/94 - * $FreeBSD: src/sbin/savecore/savecore.c,v 1.28.2.13 2002/04/07 21:17:50 asmodai Exp $ - * $DragonFly: src/sbin/savecore/savecore.c,v 1.10 2005/04/22 02:23:23 swildner Exp $ + * $FreeBSD: src/sbin/savecore/savecore.c,v 1.28.2.14 2005/01/05 09:14:34 maxim Exp $ + * $DragonFly: src/sbin/savecore/savecore.c,v 1.11 2005/12/15 22:20:49 corecode Exp $ */ #include @@ -413,6 +413,9 @@ err1: syslog(LOG_WARNING, "%s: %m", path); syslog(LOG_ERR, "%s: %m", ddname); goto err2; } + if (compress) { + nw = fwrite(buf, 1, nr, fp); + } else { for (nw = 0; nw < nr; nw = he) { /* find a contiguous block of zeroes */ for (hs = nw; hs < nr; hs += BLOCKSIZE) { @@ -448,6 +451,7 @@ err1: syslog(LOG_WARNING, "%s: %m", path); if (he > hs) if (fseeko(fp, he - hs, SEEK_CUR) == -1) break; + } } if (nw != nr) { syslog(LOG_ERR, "%s: %m", path); -- 2.41.0