From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755745AbbJ1J4D (ORCPT ); Wed, 28 Oct 2015 05:56:03 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:59494 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755112AbbJ1J4A (ORCPT ); Wed, 28 Oct 2015 05:56:00 -0400 X-AuditID: cbfee61a-f79a06d000005c6f-1d-56309baeb239 From: Chao Yu To: Jaegeuk Kim Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: [PATCH 1/2] f2fs: report error of f2fs_create_root_stats Date: Wed, 28 Oct 2015 17:55:18 +0800 Message-id: <01aa01d11166$d88de7d0$89a9b770$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: AdERYKg0/BU8pEbfS6O2m9T+cYf2UA== Content-language: zh-cn X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrFLMWRmVeSWpSXmKPExsVy+t9jQd11sw3CDI6uZrd4sn4Ws8WlRe4W l3fNYXNg9ti0qpPNY/eCz0wenzfJBTBHcdmkpOZklqUW6dslcGWc3jmNvaBfuOLyhOIGxh/8 XYycHBICJhLr9zQxQthiEhfurWfrYuTiEBKYxSix6k8fI4TzilHi6/4dLCBVbAIqEss7/jOB 2CJA9qFFl9lBbGYBD4nGju+sILawgKNE24QDYDaLgKrE/xXTmUFsXgFLifX7u9kgbEGJH5Pv sUD0akms33mcCcKWl9i85i0zxEUKEjvOvgY6ggNol57EqeWVECXiEhuP3GKZwAh0JcKkWUgm zUIyaRaSlgWMLKsYJVILkguKk9JzDfNSy/WKE3OLS/PS9ZLzczcxgkP4mdQOxoO73A8xCnAw KvHw/izSDxNiTSwrrsw9xCjBwawkwvutxSBMiDclsbIqtSg/vqg0J7X4EKM0B4uSOO+FDI0w IYH0xJLU7NTUgtQimCwTB6dUA+MO4dfxP1qdgko7V2ilLU3x/nxo8ZyYN0uZmV0SM74eq9EL +dOX/rLQprQo7YDJGwOWe3eDeSIiparXlN1fePVihcmrrldftJ6/2XFixnsdiRzZNz+ajy7r 7AqdENN4WVHwW9BGLbF7mXJHTgZxbq6ccKPi/5M3WZmTVtU0T3vA9qjdZ49KD4cSS3FGoqEW c1FxIgDhqWCOXQIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org f2fs_create_root_stats can fail due to no memory, report it to user. Signed-off-by: Chao Yu --- fs/f2fs/debug.c | 7 +++++-- fs/f2fs/f2fs.h | 4 ++-- fs/f2fs/super.c | 6 +++++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/fs/f2fs/debug.c b/fs/f2fs/debug.c index 478e5d5..b0966f3 100644 --- a/fs/f2fs/debug.c +++ b/fs/f2fs/debug.c @@ -406,20 +406,23 @@ void f2fs_destroy_stats(struct f2fs_sb_info *sbi) kfree(si); } -void __init f2fs_create_root_stats(void) +int __init f2fs_create_root_stats(void) { struct dentry *file; f2fs_debugfs_root = debugfs_create_dir("f2fs", NULL); if (!f2fs_debugfs_root) - return; + return -ENOMEM; file = debugfs_create_file("status", S_IRUGO, f2fs_debugfs_root, NULL, &stat_fops); if (!file) { debugfs_remove(f2fs_debugfs_root); f2fs_debugfs_root = NULL; + return -ENOMEM; } + + return 0; } void f2fs_destroy_root_stats(void) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index d630a4d..5f21f7c 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -1989,7 +1989,7 @@ static inline struct f2fs_stat_info *F2FS_STAT(struct f2fs_sb_info *sbi) int f2fs_build_stats(struct f2fs_sb_info *); void f2fs_destroy_stats(struct f2fs_sb_info *); -void __init f2fs_create_root_stats(void); +int __init f2fs_create_root_stats(void); void f2fs_destroy_root_stats(void); #else #define stat_inc_cp_count(si) @@ -2017,7 +2017,7 @@ void f2fs_destroy_root_stats(void); static inline int f2fs_build_stats(struct f2fs_sb_info *sbi) { return 0; } static inline void f2fs_destroy_stats(struct f2fs_sb_info *sbi) { } -static inline void __init f2fs_create_root_stats(void) { } +static inline int __init f2fs_create_root_stats(void) { } static inline void f2fs_destroy_root_stats(void) { } #endif diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index 13c821f..9d0ea11 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -1479,10 +1479,14 @@ static int __init init_f2fs_fs(void) err = register_filesystem(&f2fs_fs_type); if (err) goto free_shrinker; - f2fs_create_root_stats(); + err = f2fs_create_root_stats(); + if (err) + goto free_filesystem; f2fs_proc_root = proc_mkdir("fs/f2fs", NULL); return 0; +free_filesystem: + unregister_filesystem(&f2fs_fs_type); free_shrinker: unregister_shrinker(&f2fs_shrinker_info); free_crypto: -- 2.6.1