diff options
author | Younger Liu <liuyiyang@hisense.com> | 2013-12-03 07:11:46 -0500 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk.kim@samsung.com> | 2013-12-22 20:18:05 -0500 |
commit | c524723ebf5794083819c25320802452fe06da18 (patch) | |
tree | 8ba48f96190478e6aea1946effbf5d10b09b72e1 /fs/f2fs/debug.c | |
parent | 9af0ff1c527ebb267d9a3b6aa8af93c5843d4390 (diff) |
f2fs: remove debufs dir if debugfs_create_file() failed
When debugfs_create_file() failed in f2fs_create_root_stats(),
debugfs_root should be remove.
Signed-off-by: Younger Liu <liuyiyang@hisense.com>
Cc: Younger Liu <younger.liucn@gmail.com>
Cc: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Reviewed-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
Diffstat (limited to 'fs/f2fs/debug.c')
-rw-r--r-- | fs/f2fs/debug.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/fs/f2fs/debug.c b/fs/f2fs/debug.c index a84b0a8e6854..b51fb3c2a8e0 100644 --- a/fs/f2fs/debug.c +++ b/fs/f2fs/debug.c | |||
@@ -340,14 +340,32 @@ void f2fs_destroy_stats(struct f2fs_sb_info *sbi) | |||
340 | 340 | ||
341 | void __init f2fs_create_root_stats(void) | 341 | void __init f2fs_create_root_stats(void) |
342 | { | 342 | { |
343 | struct dentry *file; | ||
344 | |||
343 | debugfs_root = debugfs_create_dir("f2fs", NULL); | 345 | debugfs_root = debugfs_create_dir("f2fs", NULL); |
344 | if (debugfs_root) | 346 | if (!debugfs_root) |
345 | debugfs_create_file("status", S_IRUGO, debugfs_root, | 347 | goto bail; |
346 | NULL, &stat_fops); | 348 | |
349 | file = debugfs_create_file("status", S_IRUGO, debugfs_root, | ||
350 | NULL, &stat_fops); | ||
351 | if (!file) | ||
352 | goto free_debugfs_dir; | ||
353 | |||
354 | return; | ||
355 | |||
356 | free_debugfs_dir: | ||
357 | debugfs_remove(debugfs_root); | ||
358 | |||
359 | bail: | ||
360 | debugfs_root = NULL; | ||
361 | return; | ||
347 | } | 362 | } |
348 | 363 | ||
349 | void f2fs_destroy_root_stats(void) | 364 | void f2fs_destroy_root_stats(void) |
350 | { | 365 | { |
366 | if (!debugfs_root) | ||
367 | return; | ||
368 | |||
351 | debugfs_remove_recursive(debugfs_root); | 369 | debugfs_remove_recursive(debugfs_root); |
352 | debugfs_root = NULL; | 370 | debugfs_root = NULL; |
353 | } | 371 | } |