From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Dilger Subject: Re: Zero-clearing all zero-clearable bytes. Date: Sat, 22 Nov 2008 11:44:06 -0600 Message-ID: <20081122174406.GQ3186@webber.adilger.int> References: <200811221236.FJE81778.LtMHOQFJFVFSOO@I-love.SAKURA.ne.jp> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7BIT Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Tetsuo Handa Return-path: Received: from sca-es-mail-1.Sun.COM ([192.18.43.132]:54573 "EHLO sca-es-mail-1.sun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760204AbYKVRoO (ORCPT ); Sat, 22 Nov 2008 12:44:14 -0500 In-reply-to: <200811221236.FJE81778.LtMHOQFJFVFSOO@I-love.SAKURA.ne.jp> Content-disposition: inline Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Nov 22, 2008 12:36 +0900, Tetsuo Handa wrote: > Compressing whole image files includes compressing deleted/unused bytes within > a block. This means that non-zero bytes in deleted/unused blocks affect > compression ratio. > > static char buffer[4096]; > memset(buffer, 0, sizeof(buffer)); > snprintf(buffer, sizeof(buffer) - 1, "%s/XXXXXX", argc > 1 ? argv[1] : ""); > if ((fd = mkstemp(buffer)) != EOF) { > unlink(buffer); > memset(buffer, 255, sizeof(buffer)); > while (write(fd, buffer, sizeof(buffer)) > 0); Why would you fill the buffer with 0xff instead of 0? In fact no such program is needed, just "dd if=/dev/zero of=/{fs}/tmp" and then delete the file. Cheers, Andreas -- Andreas Dilger Sr. Staff Engineer, Lustre Group Sun Microsystems of Canada, Inc.