diff options
-rw-r--r-- | fs/f2fs/debug.c | 27 | ||||
-rw-r--r-- | fs/f2fs/f2fs.h | 6 | ||||
-rw-r--r-- | fs/f2fs/super.c | 7 |
3 files changed, 19 insertions, 21 deletions
diff --git a/fs/f2fs/debug.c b/fs/f2fs/debug.c index 73f034a94182..c8c37307b326 100644 --- a/fs/f2fs/debug.c +++ b/fs/f2fs/debug.c | |||
@@ -300,7 +300,7 @@ static const struct file_operations stat_fops = { | |||
300 | .release = single_release, | 300 | .release = single_release, |
301 | }; | 301 | }; |
302 | 302 | ||
303 | static int init_stats(struct f2fs_sb_info *sbi) | 303 | int f2fs_build_stats(struct f2fs_sb_info *sbi) |
304 | { | 304 | { |
305 | struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi); | 305 | struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi); |
306 | struct f2fs_stat_info *si; | 306 | struct f2fs_stat_info *si; |
@@ -327,21 +327,6 @@ static int init_stats(struct f2fs_sb_info *sbi) | |||
327 | return 0; | 327 | return 0; |
328 | } | 328 | } |
329 | 329 | ||
330 | int f2fs_build_stats(struct f2fs_sb_info *sbi) | ||
331 | { | ||
332 | int retval; | ||
333 | |||
334 | retval = init_stats(sbi); | ||
335 | if (retval) | ||
336 | return retval; | ||
337 | |||
338 | if (!debugfs_root) | ||
339 | debugfs_root = debugfs_create_dir("f2fs", NULL); | ||
340 | |||
341 | debugfs_create_file("status", S_IRUGO, debugfs_root, NULL, &stat_fops); | ||
342 | return 0; | ||
343 | } | ||
344 | |||
345 | void f2fs_destroy_stats(struct f2fs_sb_info *sbi) | 330 | void f2fs_destroy_stats(struct f2fs_sb_info *sbi) |
346 | { | 331 | { |
347 | struct f2fs_stat_info *si = sbi->stat_info; | 332 | struct f2fs_stat_info *si = sbi->stat_info; |
@@ -353,7 +338,15 @@ void f2fs_destroy_stats(struct f2fs_sb_info *sbi) | |||
353 | kfree(sbi->stat_info); | 338 | kfree(sbi->stat_info); |
354 | } | 339 | } |
355 | 340 | ||
356 | void destroy_root_stats(void) | 341 | void __init f2fs_create_root_stats(void) |
342 | { | ||
343 | debugfs_root = debugfs_create_dir("f2fs", NULL); | ||
344 | if (debugfs_root) | ||
345 | debugfs_create_file("status", S_IRUGO, debugfs_root, | ||
346 | NULL, &stat_fops); | ||
347 | } | ||
348 | |||
349 | void f2fs_destroy_root_stats(void) | ||
357 | { | 350 | { |
358 | debugfs_remove_recursive(debugfs_root); | 351 | debugfs_remove_recursive(debugfs_root); |
359 | debugfs_root = NULL; | 352 | debugfs_root = NULL; |
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 285e43d602f3..976325d51e3d 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h | |||
@@ -1060,7 +1060,8 @@ struct f2fs_stat_info { | |||
1060 | 1060 | ||
1061 | int f2fs_build_stats(struct f2fs_sb_info *); | 1061 | int f2fs_build_stats(struct f2fs_sb_info *); |
1062 | void f2fs_destroy_stats(struct f2fs_sb_info *); | 1062 | void f2fs_destroy_stats(struct f2fs_sb_info *); |
1063 | void destroy_root_stats(void); | 1063 | void f2fs_create_root_stats(void); |
1064 | void f2fs_destroy_root_stats(void); | ||
1064 | #else | 1065 | #else |
1065 | #define stat_inc_call_count(si) | 1066 | #define stat_inc_call_count(si) |
1066 | #define stat_inc_seg_count(si, type) | 1067 | #define stat_inc_seg_count(si, type) |
@@ -1070,7 +1071,8 @@ void destroy_root_stats(void); | |||
1070 | 1071 | ||
1071 | static inline int f2fs_build_stats(struct f2fs_sb_info *sbi) { return 0; } | 1072 | static inline int f2fs_build_stats(struct f2fs_sb_info *sbi) { return 0; } |
1072 | static inline void f2fs_destroy_stats(struct f2fs_sb_info *sbi) { } | 1073 | static inline void f2fs_destroy_stats(struct f2fs_sb_info *sbi) { } |
1073 | static inline void destroy_root_stats(void) { } | 1074 | static inline void f2fs_create_root_stats(void) { } |
1075 | static inline void f2fs_destroy_root_stats(void) { } | ||
1074 | #endif | 1076 | #endif |
1075 | 1077 | ||
1076 | extern const struct file_operations f2fs_dir_operations; | 1078 | extern const struct file_operations f2fs_dir_operations; |
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index ac127fde8e11..d551a724b736 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c | |||
@@ -675,14 +675,17 @@ static int __init init_f2fs_fs(void) | |||
675 | err = create_checkpoint_caches(); | 675 | err = create_checkpoint_caches(); |
676 | if (err) | 676 | if (err) |
677 | goto fail; | 677 | goto fail; |
678 | return register_filesystem(&f2fs_fs_type); | 678 | err = register_filesystem(&f2fs_fs_type); |
679 | if (err) | ||
680 | goto fail; | ||
681 | f2fs_create_root_stats(); | ||
679 | fail: | 682 | fail: |
680 | return err; | 683 | return err; |
681 | } | 684 | } |
682 | 685 | ||
683 | static void __exit exit_f2fs_fs(void) | 686 | static void __exit exit_f2fs_fs(void) |
684 | { | 687 | { |
685 | destroy_root_stats(); | 688 | f2fs_destroy_root_stats(); |
686 | unregister_filesystem(&f2fs_fs_type); | 689 | unregister_filesystem(&f2fs_fs_type); |
687 | destroy_checkpoint_caches(); | 690 | destroy_checkpoint_caches(); |
688 | destroy_gc_caches(); | 691 | destroy_gc_caches(); |