From patchwork Thu Mar 28 14:03:59 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zheng Liu X-Patchwork-Id: 232031 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 B640C2C00BC for ; Fri, 29 Mar 2013 00:48:22 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755792Ab3C1NsW (ORCPT ); Thu, 28 Mar 2013 09:48:22 -0400 Received: from mail-pb0-f44.google.com ([209.85.160.44]:34078 "EHLO mail-pb0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755692Ab3C1NsV (ORCPT ); Thu, 28 Mar 2013 09:48:21 -0400 Received: by mail-pb0-f44.google.com with SMTP id wz17so2339509pbc.17 for ; Thu, 28 Mar 2013 06:48:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:x-mailer; bh=WWgWhpO5TnRmXIOtKqszCLVBby4zhXcB7Pp9gsVMKG4=; b=JpPtxH5VSjzJVXTidw8lJK3Lni8vNqawA+JqDj7tIuMqA7mTRKMpQRaoypRovjT9c5 u8gExWbf1n6a3eWWjPOAIZRHJhHcdMlAh0UFkML3sCIlJxn1NRUlKcdEoNGaK32jnV71 JU+pFDrNclerBJgHs4zDYBu/M2uiCUZSYzw//0U0dsoOFONSP6yG3x9IwWOaTMkzscDy PI0Vpodiv+D37oCc3sLnv2IKhcHxZn4zmem3tZN58gVk6JWO0mZ2KvRIxJxIyTTxsuJk 4y0gsdHDO8YzkKHiQ1OLYAFLpHc1Z2Tve3IApG2Hsr9vZ2fPV6t+ExF5QhnBtZmyuKfn 5e8w== X-Received: by 10.68.196.129 with SMTP id im1mr35362755pbc.206.1364478501326; Thu, 28 Mar 2013 06:48:21 -0700 (PDT) Received: from lz-desktop.taobao.ali.com ([182.92.247.2]) by mx.google.com with ESMTPS id ve7sm27814721pab.11.2013.03.28.06.48.17 (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 28 Mar 2013 06:48:20 -0700 (PDT) From: Zheng Liu To: linux-ext4@vger.kernel.org Cc: Zheng Liu Subject: [PATCH] ext4: register extent status shrinker before init percpu counter Date: Thu, 28 Mar 2013 22:03:59 +0800 Message-Id: <1364479439-20277-1-git-send-email-wenqing.lz@taobao.com> X-Mailer: git-send-email 1.7.12.rc2.18.g61b472e Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org From: Zheng Liu After applied this commit (621bcca5), when we get an error we will unregsiter extent status shrinker. We might run out of memory when we initialize percpu counters. If so, we will go to 'failed_mount3', and unregister extent status shinker. At that time extent status shrinker has not yet been registered. Signed-off-by: Zheng Liu --- Hi Ted, Please fold this patch into the commit (621bcca5). Thanks, - Zheng fs/ext4/super.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/ext4/super.c b/fs/ext4/super.c index e3e6a06..febbe0e 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -3701,6 +3701,9 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) sbi->s_err_report.function = print_daily_error_info; sbi->s_err_report.data = (unsigned long) sb; + /* Register extent status tree shrinker */ + ext4_es_register_shrinker(sb); + err = percpu_counter_init(&sbi->s_freeclusters_counter, ext4_count_free_clusters(sb)); if (!err) { @@ -3726,9 +3729,6 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) sbi->s_max_writeback_mb_bump = 128; sbi->s_extent_max_zeroout_kb = 32; - /* Register extent status tree shrinker */ - ext4_es_register_shrinker(sb); - /* * set up enough so that it can read an inode */