Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1430135ybt; Thu, 18 Jun 2020 08:30:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzEFiP7O/ciXFBMZRoPt3zVLjE1/scPRHc5NpLJKjsE1ARdOKgiX7V5bneN0woeRzJB+X33 X-Received: by 2002:a17:906:edaf:: with SMTP id sa15mr4623895ejb.175.1592494207203; Thu, 18 Jun 2020 08:30:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592494207; cv=none; d=google.com; s=arc-20160816; b=bJhRcF5dgVG94MFxPwsdmGLsiEEfu58vteHbzao1OT99gfeCJgsrd5TvMsD2lW6gLb nhBD2K+oEudiAj8NyhvHNT3SrNj5MqfYtsZqaHB3cKX7+GqSLjvxBPR/6lGo9M33In1P TRQLFclDoiNHB1mBbS5Zxlr3tmEMsp1DigDiacV2WVEOb7D+wHpqhbD5L9fZaBYdF1iy Y1k7poSNOAq+6gN8DIIU09w48AnAHEtqyDEcS97gyMXE4PXlyLhnBiDEjKHtIkofKHZL uo37dHcezwRaWMJJpLeZBAJg0ogfL854//lPIleJk6OQG5JUA8QdcQzJ7SxyzFmEwCVQ 4U4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=7vfxws6JstlW6T2A3UOHoayVm5HHttjMM9F8VZPtQ+4=; b=IPcYj9SfYXtF/0bQmlK2L75Ml4ZVfMpLqvA+OQx7/OxNiCUFmvuMtjBi47Ew+jisy8 oQwAdFw1e+KpPL6GVoz2+jreVPez6wl6PPUnejWCM5q2oyRmQXZgU2ErLA9waSgkE2k1 OdAdllMEwbcD9CYu0Cnlh0nOMlzT7l7ANo0dhaZRN7iDVEoH0PzCC9X7VDwJc0md06VB vLYnT2HJVnk5UmHscCLxfutw1zkHbDX+o/qBnFOx6YVVY7OxcOT5GmjXsDjizwHgb9V4 ZM3tu1RajRhaWMppgCdIYRkNv0OzqzdkXwc2rlUpUelcVOZa4SlqagdnvsdI/H0ws2X4 9b1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=g5hnMWo9; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b10si2233180edj.94.2020.06.18.08.29.43; Thu, 18 Jun 2020 08:30:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=g5hnMWo9; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731575AbgFRP3R (ORCPT + 99 others); Thu, 18 Jun 2020 11:29:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36240 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731548AbgFRP3P (ORCPT ); Thu, 18 Jun 2020 11:29:15 -0400 Received: from mail-pj1-x1044.google.com (mail-pj1-x1044.google.com [IPv6:2607:f8b0:4864:20::1044]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89838C06174E for ; Thu, 18 Jun 2020 08:29:15 -0700 (PDT) Received: by mail-pj1-x1044.google.com with SMTP id m2so2832639pjv.2 for ; Thu, 18 Jun 2020 08:29:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=7vfxws6JstlW6T2A3UOHoayVm5HHttjMM9F8VZPtQ+4=; b=g5hnMWo9yJzm7UcuZ6K1nzqcN02QOqj2PDqkvm6+IcmWdJ5zg8mhGzicxpeNBAd8OX OcUNBOLhwoXiDxz/Kk4RP+WBYdQ5tNX6+A6gJHRcS+WlutRDBD1RnTkePM41YmA5/oUV ch2lcg4yk2yloIPcyAlt79KO7d/3uuuwDy7ejRPkU0JRoINMqMD1a+9k/Z8ZutIn8t7R PtLNBrpTamLNaUJ5g5jrWTsFhdWRzOBouXaLug+XL+SdDGyedgxLiAPsRXPTdvKzN0VO 1HQN4d1KMvjU0Nm718J8lKk1Zo3iLTv8aJeysdYwgwfx/QvpVXqwq9DheAra0gunLwdG v9Sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=7vfxws6JstlW6T2A3UOHoayVm5HHttjMM9F8VZPtQ+4=; b=Tl9oFQA0ozfTmjl1vqQ8d39wTnpH4UQw2gzG2SuZEFnxLMjBX727rcMOzlS6BdN4q9 +SieviKZcI3bI8xAQ9ddaCaLKzbrtB4+nE59IREFjLsW3458crAxSWBWTl+G8JVuxj6b pgl6Yyjn97Q8bW+sMaFTqpniHN5rWvbYj9cNIsCfeUslCkQdwWXM2wEXZtWJHlJcDEz7 Bt9bePBEu2nzg+XC1/QpP5zuzAeLcpe7Ym3ImZsp5PMAzOnAQcA/ADYnjeTOjyTsi6Yh egrScaXNrWg7fnMqAooz891rbdmng8+Nq0j4syLiVuvzk3Bo9b1T3et2FfaRgDJqvDoY gRVQ== X-Gm-Message-State: AOAM530ry23PP0B4mUikZ1/mY76KEwwymqTjvUUDapYJWgAqQ1wB80rz I4KeNh9+h9vQ3/a6w4FQOrtCx8V1xEU= X-Received: by 2002:a17:902:8204:: with SMTP id x4mr4075166pln.153.1592494154803; Thu, 18 Jun 2020 08:29:14 -0700 (PDT) Received: from localhost.localdomain (ftp.datadirectnet.jp. [182.171.80.51]) by smtp.gmail.com with ESMTPSA id y81sm3306650pfb.33.2020.06.18.08.29.12 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jun 2020 08:29:14 -0700 (PDT) From: Wang Shilong To: linux-ext4@vger.kernel.org Cc: lixi@ddn.com, adilger@dilger.ca, wangshilong1991@gmail.com, sihara@ddn.com, Wang Shilong Subject: [RFC PATCH v2 26/51] e2fsck: merge counts when threads finish Date: Fri, 19 Jun 2020 00:27:29 +0900 Message-Id: <1592494074-28991-27-git-send-email-wangshilong1991@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1592494074-28991-1-git-send-email-wangshilong1991@gmail.com> References: <1592494074-28991-1-git-send-email-wangshilong1991@gmail.com> Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org From: Li Xi Signed-off-by: Li Xi Signed-off-by: Wang Shilong --- e2fsck/pass1.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c index d2f4ba79..efab125d 100644 --- a/e2fsck/pass1.c +++ b/e2fsck/pass1.c @@ -2153,6 +2153,11 @@ do { \ } \ } while (0) +#define PASS1_MERGE_CTX_COUNT(_dest, _src, _field) \ +do { \ + _dest->_field = _field + _src->_field; \ +} while (0) + static errcode_t pass1_open_io_channel(ext2_filsys fs, const char *io_options, io_manager manager, int flags) @@ -2487,6 +2492,23 @@ static int e2fsck_pass1_thread_join_one(e2fsck_t global_ctx, e2fsck_t thread_ctx ext2fs_block_bitmap inodes_to_rebuild = global_ctx->inodes_to_rebuild; ext2_icount_t inode_count = global_ctx->inode_count; ext2_icount_t inode_link_info = global_ctx->inode_link_info; + __u32 fs_directory_count = global_ctx->fs_directory_count; + __u32 fs_regular_count = global_ctx->fs_regular_count; + __u32 fs_blockdev_count = global_ctx->fs_blockdev_count; + __u32 fs_chardev_count = global_ctx->fs_chardev_count; + __u32 fs_links_count = global_ctx->fs_links_count; + __u32 fs_symlinks_count = global_ctx->fs_symlinks_count; + __u32 fs_fast_symlinks_count = global_ctx->fs_fast_symlinks_count; + __u32 fs_fifo_count = global_ctx->fs_fifo_count; + __u32 fs_total_count = global_ctx->fs_total_count; + __u32 fs_badblocks_count = global_ctx->fs_badblocks_count; + __u32 fs_sockets_count = global_ctx->fs_sockets_count; + __u32 fs_ind_count = global_ctx->fs_ind_count; + __u32 fs_dind_count = global_ctx->fs_dind_count; + __u32 fs_tind_count = global_ctx->fs_tind_count; + __u32 fs_fragmented = global_ctx->fs_fragmented; + __u32 fs_fragmented_dir = global_ctx->fs_fragmented_dir; + __u32 large_files = global_ctx->large_files; #ifdef HAVE_SETJMP_H jmp_buf old_jmp; @@ -2512,6 +2534,23 @@ static int e2fsck_pass1_thread_join_one(e2fsck_t global_ctx, e2fsck_t thread_ctx e2fsck_pass1_merge_dir_info(global_ctx, thread_ctx); global_ctx->inode_count = inode_count; global_ctx->inode_link_info = inode_link_info; + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_directory_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_regular_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_blockdev_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_chardev_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_links_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_symlinks_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_fast_symlinks_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_fifo_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_total_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_badblocks_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_sockets_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_ind_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_dind_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_tind_count); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_fragmented); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, fs_fragmented_dir); + PASS1_MERGE_CTX_COUNT(global_ctx, thread_ctx, large_files); /* Keep the global singal flags*/ global_ctx->flags |= (flags & E2F_FLAG_SIGNAL_MASK) | -- 2.25.4