From patchwork Sun Jan 29 16:01:05 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongqiang Yang X-Patchwork-Id: 148250 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 04FD8B6EF4 for ; Fri, 23 Mar 2012 00:41:36 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757534Ab2CVNlf (ORCPT ); Thu, 22 Mar 2012 09:41:35 -0400 Received: from mail-iy0-f174.google.com ([209.85.210.174]:38287 "EHLO mail-iy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756382Ab2CVNle (ORCPT ); Thu, 22 Mar 2012 09:41:34 -0400 Received: by mail-iy0-f174.google.com with SMTP id z16so3130313iag.19 for ; Thu, 22 Mar 2012 06:41:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=qqcup8VOd0t0VbfyQXilN+rLa2Tf3Gjap9JI04rEVQw=; b=YLwQJt1bCK/xpBsGVoM/QWKoIykKDvpIpRnwUfUFsGsQdZdVXsNWMzQFZ1ePxCkQV1 fzK4RiYRTQod6l5lilRm7bLu/v/0DqsKUDEti9GnzFtVNPZuWQ7QIBaVdP/c/m2HTrZc m818to65NEiQ7Hq8SS1Czu/s6Z+673nA5LuHQtxKRSeBySt5BNGPm2zP/p2yMywKKnmf XbxvfK9y+NYvvTxPnCbD4aI0p2606EW1yrvsJ2RKdB6mw2Gmgewkr60e9eVk3kWJZdCu jRs+X8yOJecb4nbwJQTNUfuOz9yn0I5k6kNQlMYxAQOCrQD8EzEiM//WGvf+QH4gg4xx w6pQ== Received: by 10.50.36.166 with SMTP id r6mr1658158igj.45.1332423694300; Thu, 22 Mar 2012 06:41:34 -0700 (PDT) Received: from localhost.localdomain ([159.226.43.42]) by mx.google.com with ESMTPS id ko6sm1412236igc.2.2012.03.22.06.41.32 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 22 Mar 2012 06:41:33 -0700 (PDT) From: Yongqiang Yang To: linux-ext4@vger.kernel.org Cc: adilger@gmail.com, Yongqiang Yang Subject: [PATCH 3/4] ext4: accelerate updating of backup gdb Date: Mon, 30 Jan 2012 00:01:05 +0800 Message-Id: <1327852866-4448-4-git-send-email-xiaoqiangnk@gmail.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1327852866-4448-1-git-send-email-xiaoqiangnk@gmail.com> References: <1327852866-4448-1-git-send-email-xiaoqiangnk@gmail.com> Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Updating of backup group descriptor blocks shoud done in the unit of gdb, rather than group. Signed-off-by: Yongqiang Yang --- fs/ext4/resize.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index 58109fa..3999a19 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c @@ -1290,15 +1290,18 @@ exit_journal: err = err2; if (!err) { - int i; + int gdb_num, gdb_num_end; ext4_fsblk_t first_block; + first_block = ext4_group_first_block_no(sb, 0); update_backups(sb, sbi->s_sbh->b_blocknr - first_block, (char *)es, sizeof(struct ext4_super_block)); - for (i = 0; i < flex_gd->count; i++, group++) { + + gdb_num = group / EXT4_DESC_PER_BLOCK(sb); + gdb_num_end = (group + flex_gd->count - 1) / + EXT4_DESC_PER_BLOCK(sb); + for (; gdb_num <= gdb_num_end; gdb_num++) { struct buffer_head *gdb_bh; - int gdb_num; - gdb_num = group / EXT4_BLOCKS_PER_GROUP(sb); gdb_bh = sbi->s_group_desc[gdb_num]; update_backups(sb, gdb_bh->b_blocknr - first_block, gdb_bh->b_data, gdb_bh->b_size);