From patchwork Sat Nov 19 09:57:16 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yongqiang Yang X-Patchwork-Id: 126562 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 77964B722D for ; Sat, 19 Nov 2011 23:31:27 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752224Ab1KSMb0 (ORCPT ); Sat, 19 Nov 2011 07:31:26 -0500 Received: from mail-yx0-f174.google.com ([209.85.213.174]:42447 "EHLO mail-yx0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751587Ab1KSMb0 (ORCPT ); Sat, 19 Nov 2011 07:31:26 -0500 Received: by mail-yx0-f174.google.com with SMTP id q3so3357779yen.19 for ; Sat, 19 Nov 2011 04:31:25 -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=geKXIF/nIxOlBkZwpPZRW/WdzQ3RuenUlURGSQedi+CSicFfSg/jqm+DZjrz/Hw6SF MXPK8ihM6WlR+htrCy+C4nCNJI6TIRhr2HYKh/N/iQ283LP54toZIO+0+EW+wWxKpWIy iZfYR7JYIINt3NsEi4sgJrTMP3PszW8eOBpiQ= Received: by 10.50.87.227 with SMTP id bb3mr7035868igb.29.1321705885615; Sat, 19 Nov 2011 04:31:25 -0800 (PST) Received: from localhost.localdomain ([159.226.43.42]) by mx.google.com with ESMTPS id eb23sm16483257ibb.2.2011.11.19.04.31.23 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 19 Nov 2011 04:31:25 -0800 (PST) From: Yongqiang Yang To: tytso@mit.edu Cc: adilger@dilger.ca, linux-ext4@vger.kernel.org, Yongqiang Yang Subject: [PATCH v4 10/15] ext4: pass verify_reserved_gdb() the number of group decriptors Date: Sat, 19 Nov 2011 17:57:16 +0800 Message-Id: <1321696641-14437-11-git-send-email-xiaoqiangnk@gmail.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1321696641-14437-1-git-send-email-xiaoqiangnk@gmail.com> References: <1321696641-14437-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;