Patchwork [2/2] UBIFS: fix debugfs-less systems support

login
register
mail settings
Submitter Artem Bityutskiy
Date June 6, 2012, 1:09 p.m.
Message ID <1338988149-5183-2-git-send-email-dedekind1@gmail.com>
Download mbox | patch
Permalink /patch/163370/
State Accepted
Commit 818039c7d597db3b1d30964a8f9489ac42c0642d
Headers show

Comments

Artem Bityutskiy - June 6, 2012, 1:09 p.m.
From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

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.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---
 fs/ubifs/debug.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)
Paul Parsons - June 6, 2012, 4:27 p.m.
--- On Wed, 6/6/12, Artem Bityutskiy <dedekind1@gmail.com> wrote:
> 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.
> 
> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

Thanks Artem!

This patch series works for me on linux-3.5.0-rc1.

Tested-by: Paul Parsons <lost.distance@yahoo.com>
Artem Bityutskiy - June 7, 2012, 7:48 a.m.
On Wed, 2012-06-06 at 17:27 +0100, Paul Parsons wrote:
> Tested-by: Paul Parsons <lost.distance@yahoo.com>

Thanks! Pushed to linux-ubifs.git and will send to Linus soon.

http://git.infradead.org/ubifs-2.6.git/commit/818039c7d597db3b1d30964a8f9489ac42c0642d

Patch

diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c
index 685a837..84a7e6f 100644
--- a/fs/ubifs/debug.c
+++ b/fs/ubifs/debug.c
@@ -2918,6 +2918,9 @@  int dbg_debugfs_init_fs(struct ubifs_info *c)
 	struct dentry *dent;
 	struct ubifs_debug_info *d = c->dbg;
 
+	if (!IS_ENABLED(DEBUG_FS))
+		return 0;
+
 	n = snprintf(d->dfs_dir_name, UBIFS_DFS_DIR_LEN + 1, UBIFS_DFS_DIR_NAME,
 		     c->vi.ubi_num, c->vi.vol_id);
 	if (n == UBIFS_DFS_DIR_LEN) {
@@ -3010,7 +3013,8 @@  out:
  */
 void dbg_debugfs_exit_fs(struct ubifs_info *c)
 {
-	debugfs_remove_recursive(c->dbg->dfs_dir);
+	if (IS_ENABLED(DEBUG_FS))
+		debugfs_remove_recursive(c->dbg->dfs_dir);
 }
 
 struct ubifs_global_debug_info ubifs_dbg;
@@ -3095,6 +3099,9 @@  int dbg_debugfs_init(void)
 	const char *fname;
 	struct dentry *dent;
 
+	if (!IS_ENABLED(DEBUG_FS))
+		return 0;
+
 	fname = "ubifs";
 	dent = debugfs_create_dir(fname, NULL);
 	if (IS_ERR_OR_NULL(dent))
@@ -3159,7 +3166,8 @@  out:
  */
 void dbg_debugfs_exit(void)
 {
-	debugfs_remove_recursive(dfs_rootdir);
+	if (IS_ENABLED(DEBUG_FS))
+		debugfs_remove_recursive(dfs_rootdir);
 }
 
 /**