diff options
author | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2012-06-06 09:03:10 -0400 |
---|---|---|
committer | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2012-06-07 03:43:54 -0400 |
commit | 818039c7d597db3b1d30964a8f9489ac42c0642d (patch) | |
tree | 15a7529f017b818895e3e5ba75df4ef6f415af48 /fs | |
parent | e9b4cf2094a65a05a831f070e46c554260632330 (diff) |
UBIFS: fix debugfs-less systems support
Commit "f70b7e5 UBIFS: remove Kconfig debugging option" broke UBIFS and it
refuses to initialize if debugfs (CONFIG_DEBUG_FS) is disabled. I incorrectly
assumed that debugfs files creation function will return success if debugfs
is disabled, but they actually return -ENODEV. This patch fixes the issue.
Reported-by: Paul Parsons <lost.distance@yahoo.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Tested-by: Paul Parsons <lost.distance@yahoo.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ubifs/debug.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c index 685a83756b2b..84a7e6f3c046 100644 --- a/fs/ubifs/debug.c +++ b/fs/ubifs/debug.c | |||
@@ -2918,6 +2918,9 @@ int dbg_debugfs_init_fs(struct ubifs_info *c) | |||
2918 | struct dentry *dent; | 2918 | struct dentry *dent; |
2919 | struct ubifs_debug_info *d = c->dbg; | 2919 | struct ubifs_debug_info *d = c->dbg; |
2920 | 2920 | ||
2921 | if (!IS_ENABLED(DEBUG_FS)) | ||
2922 | return 0; | ||
2923 | |||
2921 | n = snprintf(d->dfs_dir_name, UBIFS_DFS_DIR_LEN + 1, UBIFS_DFS_DIR_NAME, | 2924 | n = snprintf(d->dfs_dir_name, UBIFS_DFS_DIR_LEN + 1, UBIFS_DFS_DIR_NAME, |
2922 | c->vi.ubi_num, c->vi.vol_id); | 2925 | c->vi.ubi_num, c->vi.vol_id); |
2923 | if (n == UBIFS_DFS_DIR_LEN) { | 2926 | if (n == UBIFS_DFS_DIR_LEN) { |
@@ -3010,7 +3013,8 @@ out: | |||
3010 | */ | 3013 | */ |
3011 | void dbg_debugfs_exit_fs(struct ubifs_info *c) | 3014 | void dbg_debugfs_exit_fs(struct ubifs_info *c) |
3012 | { | 3015 | { |
3013 | debugfs_remove_recursive(c->dbg->dfs_dir); | 3016 | if (IS_ENABLED(DEBUG_FS)) |
3017 | debugfs_remove_recursive(c->dbg->dfs_dir); | ||
3014 | } | 3018 | } |
3015 | 3019 | ||
3016 | struct ubifs_global_debug_info ubifs_dbg; | 3020 | struct ubifs_global_debug_info ubifs_dbg; |
@@ -3095,6 +3099,9 @@ int dbg_debugfs_init(void) | |||
3095 | const char *fname; | 3099 | const char *fname; |
3096 | struct dentry *dent; | 3100 | struct dentry *dent; |
3097 | 3101 | ||
3102 | if (!IS_ENABLED(DEBUG_FS)) | ||
3103 | return 0; | ||
3104 | |||
3098 | fname = "ubifs"; | 3105 | fname = "ubifs"; |
3099 | dent = debugfs_create_dir(fname, NULL); | 3106 | dent = debugfs_create_dir(fname, NULL); |
3100 | if (IS_ERR_OR_NULL(dent)) | 3107 | if (IS_ERR_OR_NULL(dent)) |
@@ -3159,7 +3166,8 @@ out: | |||
3159 | */ | 3166 | */ |
3160 | void dbg_debugfs_exit(void) | 3167 | void dbg_debugfs_exit(void) |
3161 | { | 3168 | { |
3162 | debugfs_remove_recursive(dfs_rootdir); | 3169 | if (IS_ENABLED(DEBUG_FS)) |
3170 | debugfs_remove_recursive(dfs_rootdir); | ||
3163 | } | 3171 | } |
3164 | 3172 | ||
3165 | /** | 3173 | /** |