From owner-svn-src-user@FreeBSD.ORG Thu May 15 00:48:06 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 381CFE2D; Thu, 15 May 2014 00:48:06 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 25A052C7B; Thu, 15 May 2014 00:48:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s4F0m6FS054549; Thu, 15 May 2014 00:48:06 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s4F0m6p8054548; Thu, 15 May 2014 00:48:06 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201405150048.s4F0m6p8054548@svn.freebsd.org> From: Marcel Moolenaar Date: Thu, 15 May 2014 00:48:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r266100 - user/marcel/mkimg X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 May 2014 00:48:06 -0000 Author: marcel Date: Thu May 15 00:48:05 2014 New Revision: 266100 URL: http://svnweb.freebsd.org/changeset/base/266100 Log: Have the format resize twice. The first time is before we call scheme_write(). The second time is immediately before we call the format's write function. The first call is needed to have the scheme know the right image size. The second call is needed to compensate for the scheme adjusting the size while writing. Modified: user/marcel/mkimg/format.c Modified: user/marcel/mkimg/format.c ============================================================================== --- user/marcel/mkimg/format.c Thu May 15 00:24:49 2014 (r266099) +++ user/marcel/mkimg/format.c Thu May 15 00:48:05 2014 (r266100) @@ -48,7 +48,7 @@ int format_resize(lba_t end) { - if (format == NULL || format->resize == NULL) + if (format == NULL) return (ENOSYS); return (format->resize(end)); } @@ -78,8 +78,14 @@ format_selected(void) int format_write(int fd) { + lba_t size; + int error; - if (format == NULL || format->write == NULL) + if (format == NULL) return (ENOSYS); - return (format->write(fd)); + size = image_get_size(); + error = format->resize(size); + if (!error) + error = format->write(fd); + return (error); }