From patchwork Wed Dec 10 20:51:41 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mwilck@arcor.de X-Patchwork-Id: 5472481 Return-Path: X-Original-To: patchwork-linux-btrfs@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id D22209F444 for ; Wed, 10 Dec 2014 21:06:11 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 03053201B4 for ; Wed, 10 Dec 2014 21:06:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 293622018E for ; Wed, 10 Dec 2014 21:06:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933359AbaLJVGG (ORCPT ); Wed, 10 Dec 2014 16:06:06 -0500 Received: from mail-in-10.arcor-online.net ([151.189.21.50]:52074 "EHLO mail-in-10.arcor-online.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933319AbaLJVFn (ORCPT ); Wed, 10 Dec 2014 16:05:43 -0500 Received: from mail-in-11-z2.arcor-online.net (mail-in-11-z2.arcor-online.net [151.189.8.28]) by mx.arcor.de (Postfix) with ESMTP id 137C72D65F5 for ; Wed, 10 Dec 2014 22:05:42 +0100 (CET) Received: from mail-in-10.arcor-online.net (mail-in-10.arcor-online.net [151.189.21.50]) by mail-in-11-z2.arcor-online.net (Postfix) with ESMTP id 01ADF31A025; Wed, 10 Dec 2014 22:05:42 +0100 (CET) X-Greylist: Passed host: 188.96.131.100 X-DKIM: Sendmail DKIM Filter v2.8.2 mail-in-10.arcor-online.net D70992D65F5 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arcor.de; s=mail-in; t=1418245542; bh=iyw8d7YYRJn78zja+sATd4uCsyhu32xJ7K/kbdhpwEM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=hmZuYfs6B69Nd5Fnc37DOAkfG0oTV7naCFFdzv5u4adhYSDRbYha7VqrdJ2CQx15w x9sx8ypISThGccucoNgRO4oizjaZZMCm8/JzcCwp8YPsSFVrc3UJpy+EYyOVZFF4ac iY9hedNUthGTeNI7tsgySm8isAhWnDO1ilHfbOgE= X-Greylist: Passed host: 188.96.131.100 Received: from localhost.localdomain (dslb-188-096-131-100.188.096.pools.vodafone-ip.de [188.96.131.100]) (Authenticated sender: mwilck@arcor.de) by mail-in-10.arcor-online.net (Postfix) with ESMTPSA id D70992D65F5; Wed, 10 Dec 2014 22:05:41 +0100 (CET) From: mwilck@arcor.de To: linux-btrfs@vger.kernel.org Cc: mwilck@arcor.de Subject: [PATCH 11/18] btrfs restore: print progress marks for big files Date: Wed, 10 Dec 2014 21:51:41 +0100 Message-Id: <1418244708-7087-12-git-send-email-mwilck@arcor.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1418244708-7087-1-git-send-email-mwilck@arcor.de> References: <1418244708-7087-1-git-send-email-mwilck@arcor.de> Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, FREEMAIL_FROM,RCVD_IN_DNSWL_HI,T_DKIM_INVALID,T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Martin Wilck print a '+' for every 64k restored. This gives people more confidence in long-running restore processes. Signed-off-by: Martin Wilck --- cmds-restore.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/cmds-restore.c b/cmds-restore.c index f1c63ed..004c82e 100644 --- a/cmds-restore.c +++ b/cmds-restore.c @@ -658,6 +658,8 @@ static int copy_file(struct btrfs_root *root, int fd, struct btrfs_key *key, int loops = 0; u64 bytes_written, next_pos = 0ULL; u64 total_written = 0ULL; +#define MAYBE_NL (verbose && (next_pos >> display_shift) ? "\n" : "") + const u64 display_shift = 16; struct stat st; path = btrfs_alloc_path(); @@ -751,6 +753,10 @@ static int copy_file(struct btrfs_root *root, int fd, struct btrfs_key *key, printf("Weird extent type %d\n", extent_type); } total_written += bytes_written; + if (verbose && + ((next_pos + bytes_written) >> display_shift) > + (next_pos >> display_shift)) + fprintf(stderr, "+"); next_pos = found_key.offset + bytes_written; if (ret) { fprintf(stderr, "ERROR after writing %llu bytes\n", @@ -764,6 +770,8 @@ next: set_size: btrfs_free_path(path); + + printf(MAYBE_NL); if (get_xattrs) { ret = set_file_xattrs(root, key->objectid, fd, file); if (ret)