From patchwork Fri Dec 23 08:15:00 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongqiang Yang X-Patchwork-Id: 133005 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 5052CB7001 for ; Fri, 23 Dec 2011 22:53:19 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756755Ab1LWLxS (ORCPT ); Fri, 23 Dec 2011 06:53:18 -0500 Received: from mail-tul01m020-f174.google.com ([209.85.214.174]:47472 "EHLO mail-tul01m020-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756762Ab1LWLxR (ORCPT ); Fri, 23 Dec 2011 06:53:17 -0500 Received: by mail-tul01m020-f174.google.com with SMTP id wo16so4941593obc.19 for ; Fri, 23 Dec 2011 03:53:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=x3ox54TgcJIYhJhkyA0VvANpNiNaLhyLtQMM7OSIZDI=; b=grxOoyBkrYsGe3UTWNu/IkjN3yeIRZtQwuI4RF5hjJQLofhyS6qO9jiVKs1Bt6pMAM 6GQA6GfA+u+uzZ33a4SnswdOB4cTmZnEKxzAwdVDXutDuX1zz2/x271yM7ukvbpeb7Df 898g+OOM4juFhz8UTXMpQkgKaO68rsmx0UVAk= Received: by 10.50.222.193 with SMTP id qo1mr13576913igc.22.1324641197343; Fri, 23 Dec 2011 03:53:17 -0800 (PST) Received: from localhost.localdomain ([159.226.43.42]) by mx.google.com with ESMTPS id i2sm9968543igq.6.2011.12.23.03.53.15 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 23 Dec 2011 03:53:16 -0800 (PST) From: Yongqiang Yang To: linux-ext4@vger.kernel.org Cc: tytso@mit.edu, Yongqiang Yang Subject: [PATCH v5 10/15] ext4: pass verify_reserved_gdb() the number of group decriptors Date: Fri, 23 Dec 2011 16:15:00 +0800 Message-Id: <1324628105-32559-11-git-send-email-xiaoqiangnk@gmail.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1324628105-32559-1-git-send-email-xiaoqiangnk@gmail.com> References: <1324628105-32559-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 From: Yongqiang Yang The 64bit resizer adds a flex group each time, so verify_reserved_gdb can not use s_groups_count directly, it should use the number of group decriptors before the added group. Signed-off-by: Yongqiang Yang Signed-off-by: "Theodore Ts'o" --- fs/ext4/resize.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index fdce84c..f368190 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c @@ -624,10 +624,10 @@ static unsigned ext4_list_backups(struct super_block *sb, unsigned *three, * groups in current filesystem that have BACKUPS, or -ve error code. */ static int verify_reserved_gdb(struct super_block *sb, + ext4_group_t end, struct buffer_head *primary) { const ext4_fsblk_t blk = primary->b_blocknr; - const ext4_group_t end = EXT4_SB(sb)->s_groups_count; unsigned three = 1; unsigned five = 5; unsigned seven = 7; @@ -702,7 +702,7 @@ static int add_new_gdb(handle_t *handle, struct inode *inode, if (!gdb_bh) return -EIO; - gdbackups = verify_reserved_gdb(sb, gdb_bh); + gdbackups = verify_reserved_gdb(sb, group, gdb_bh); if (gdbackups < 0) { err = gdbackups; goto exit_bh; @@ -865,7 +865,8 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode, err = -EIO; goto exit_bh; } - if ((gdbackups = verify_reserved_gdb(sb, primary[res])) < 0) { + gdbackups = verify_reserved_gdb(sb, group, primary[res]); + if (gdbackups < 0) { brelse(primary[res]); err = gdbackups; goto exit_bh;