[patch 017/144] jbd: config_jbd_debug cannot create /proc entry

2007-10-19 Thread akpm
From: Jose R. Santos [EMAIL PROTECTED]

The jbd-debug file used to be located in /proc/sys/fs/jbd-debug, but
create_proc_entry() does not do lookups on file names that are more that
one directory deep.  This causes the entry creation to fail and hence, no
proc file is created.

Instead of fixing this on procfs might as well move the jbd2-debug file to
debugfs which would be the preferred location for this kind of tunable. 
The new location is now /sys/kernel/debug/jbd/jbd-debug.

[EMAIL PROTECTED]: zillions of cleanups]
Signed-off-by: Jose R. Santos [EMAIL PROTECTED]
Acked-by: Jan Kara [EMAIL PROTECTED]
Cc: linux-ext4@vger.kernel.org
Signed-off-by: Andrew Morton [EMAIL PROTECTED]
---

 fs/Kconfig  |   10 +++---
 fs/jbd/journal.c|   64 +-
 include/linux/jbd.h |2 -
 3 files changed, 27 insertions(+), 49 deletions(-)

diff -puN fs/Kconfig~jbd-config_jbd_debug-cannot-create-proc-entry fs/Kconfig
--- a/fs/Kconfig~jbd-config_jbd_debug-cannot-create-proc-entry
+++ a/fs/Kconfig
@@ -220,7 +220,7 @@ config JBD
 
 config JBD_DEBUG
bool JBD (ext3) debugging support
-   depends on JBD
+   depends on JBD  DEBUG_FS
help
  If you are using the ext3 journaled file system (or potentially any
  other file system/device using JBD), this option allows you to
@@ -229,10 +229,10 @@ config JBD_DEBUG
  debugging output will be turned off.
 
  If you select Y here, then you will be able to turn on debugging
- with echo N  /proc/sys/fs/jbd-debug, where N is a number between
- 1 and 5, the higher the number, the more debugging output is
- generated.  To turn debugging off again, do
- echo 0  /proc/sys/fs/jbd-debug.
+ with echo N  /sys/kernel/debug/jbd/jbd-debug, where N is a
+ number between 1 and 5, the higher the number, the more debugging
+ output is generated.  To turn debugging off again, do
+ echo 0  /sys/kernel/debug/jbd/jbd-debug.
 
 config JBD2
tristate
diff -puN fs/jbd/journal.c~jbd-config_jbd_debug-cannot-create-proc-entry 
fs/jbd/journal.c
--- a/fs/jbd/journal.c~jbd-config_jbd_debug-cannot-create-proc-entry
+++ a/fs/jbd/journal.c
@@ -35,6 +35,7 @@
 #include linux/kthread.h
 #include linux/poison.h
 #include linux/proc_fs.h
+#include linux/debugfs.h
 
 #include asm/uaccess.h
 #include asm/page.h
@@ -1851,64 +1852,41 @@ void journal_put_journal_head(struct jou
 }
 
 /*
- * /proc tunables
+ * debugfs tunables
  */
-#if defined(CONFIG_JBD_DEBUG)
-int journal_enable_debug;
-EXPORT_SYMBOL(journal_enable_debug);
-#endif
+#ifdef CONFIG_JBD_DEBUG
 
-#if defined(CONFIG_JBD_DEBUG)  defined(CONFIG_PROC_FS)
+u8 journal_enable_debug __read_mostly;
+EXPORT_SYMBOL(journal_enable_debug);
 
-static struct proc_dir_entry *proc_jbd_debug;
+static struct dentry *jbd_debugfs_dir;
+static struct dentry *jbd_debug;
 
-static int read_jbd_debug(char *page, char **start, off_t off,
- int count, int *eof, void *data)
+static void __init jbd_create_debugfs_entry(void)
 {
-   int ret;
-
-   ret = sprintf(page + off, %d\n, journal_enable_debug);
-   *eof = 1;
-   return ret;
+   jbd_debugfs_dir = debugfs_create_dir(jbd, NULL);
+   if (jbd_debugfs_dir)
+   jbd_debug = debugfs_create_u8(jbd-debug, S_IRUGO,
+  jbd_debugfs_dir,
+  journal_enable_debug);
 }
 
-static int write_jbd_debug(struct file *file, const char __user *buffer,
-  unsigned long count, void *data)
+static void __exit jbd_remove_debugfs_entry(void)
 {
-   char buf[32];
-
-   if (count  ARRAY_SIZE(buf) - 1)
-   count = ARRAY_SIZE(buf) - 1;
-   if (copy_from_user(buf, buffer, count))
-   return -EFAULT;
-   buf[ARRAY_SIZE(buf) - 1] = '\0';
-   journal_enable_debug = simple_strtoul(buf, NULL, 10);
-   return count;
+   debugfs_remove(jbd_debug);
+   debugfs_remove(jbd_debugfs_dir);
 }
 
-#define JBD_PROC_NAME sys/fs/jbd-debug
+#else
 
-static void __init create_jbd_proc_entry(void)
+static inline void jbd_create_debugfs_entry(void)
 {
-   proc_jbd_debug = create_proc_entry(JBD_PROC_NAME, 0644, NULL);
-   if (proc_jbd_debug) {
-   /* Why is this so hard? */
-   proc_jbd_debug-read_proc = read_jbd_debug;
-   proc_jbd_debug-write_proc = write_jbd_debug;
-   }
 }
 
-static void __exit remove_jbd_proc_entry(void)
+static inline void jbd_remove_debugfs_entry(void)
 {
-   if (proc_jbd_debug)
-   remove_proc_entry(JBD_PROC_NAME, NULL);
 }
 
-#else
-
-#define create_jbd_proc_entry() do {} while (0)
-#define remove_jbd_proc_entry() do {} while (0)
-
 #endif
 
 struct kmem_cache *jbd_handle_cache;
@@ -1965,7 +1943,7 @@ static int __init journal_init(void)
ret = journal_init_caches();
if (ret != 0

[patch 017/144] jbd: config_jbd_debug cannot create /proc entry

2007-10-19 Thread akpm
From: Jose R. Santos [EMAIL PROTECTED]

The jbd-debug file used to be located in /proc/sys/fs/jbd-debug, but
create_proc_entry() does not do lookups on file names that are more that
one directory deep.  This causes the entry creation to fail and hence, no
proc file is created.

Instead of fixing this on procfs might as well move the jbd2-debug file to
debugfs which would be the preferred location for this kind of tunable. 
The new location is now /sys/kernel/debug/jbd/jbd-debug.

[EMAIL PROTECTED]: zillions of cleanups]
Signed-off-by: Jose R. Santos [EMAIL PROTECTED]
Acked-by: Jan Kara [EMAIL PROTECTED]
Cc: linux-ext4@vger.kernel.org
Signed-off-by: Andrew Morton [EMAIL PROTECTED]
---

 fs/Kconfig  |   10 +++---
 fs/jbd/journal.c|   64 +-
 include/linux/jbd.h |2 -
 3 files changed, 27 insertions(+), 49 deletions(-)

diff -puN fs/Kconfig~jbd-config_jbd_debug-cannot-create-proc-entry fs/Kconfig
--- a/fs/Kconfig~jbd-config_jbd_debug-cannot-create-proc-entry
+++ a/fs/Kconfig
@@ -220,7 +220,7 @@ config JBD
 
 config JBD_DEBUG
bool JBD (ext3) debugging support
-   depends on JBD
+   depends on JBD  DEBUG_FS
help
  If you are using the ext3 journaled file system (or potentially any
  other file system/device using JBD), this option allows you to
@@ -229,10 +229,10 @@ config JBD_DEBUG
  debugging output will be turned off.
 
  If you select Y here, then you will be able to turn on debugging
- with echo N  /proc/sys/fs/jbd-debug, where N is a number between
- 1 and 5, the higher the number, the more debugging output is
- generated.  To turn debugging off again, do
- echo 0  /proc/sys/fs/jbd-debug.
+ with echo N  /sys/kernel/debug/jbd/jbd-debug, where N is a
+ number between 1 and 5, the higher the number, the more debugging
+ output is generated.  To turn debugging off again, do
+ echo 0  /sys/kernel/debug/jbd/jbd-debug.
 
 config JBD2
tristate
diff -puN fs/jbd/journal.c~jbd-config_jbd_debug-cannot-create-proc-entry 
fs/jbd/journal.c
--- a/fs/jbd/journal.c~jbd-config_jbd_debug-cannot-create-proc-entry
+++ a/fs/jbd/journal.c
@@ -35,6 +35,7 @@
 #include linux/kthread.h
 #include linux/poison.h
 #include linux/proc_fs.h
+#include linux/debugfs.h
 
 #include asm/uaccess.h
 #include asm/page.h
@@ -1851,64 +1852,41 @@ void journal_put_journal_head(struct jou
 }
 
 /*
- * /proc tunables
+ * debugfs tunables
  */
-#if defined(CONFIG_JBD_DEBUG)
-int journal_enable_debug;
-EXPORT_SYMBOL(journal_enable_debug);
-#endif
+#ifdef CONFIG_JBD_DEBUG
 
-#if defined(CONFIG_JBD_DEBUG)  defined(CONFIG_PROC_FS)
+u8 journal_enable_debug __read_mostly;
+EXPORT_SYMBOL(journal_enable_debug);
 
-static struct proc_dir_entry *proc_jbd_debug;
+static struct dentry *jbd_debugfs_dir;
+static struct dentry *jbd_debug;
 
-static int read_jbd_debug(char *page, char **start, off_t off,
- int count, int *eof, void *data)
+static void __init jbd_create_debugfs_entry(void)
 {
-   int ret;
-
-   ret = sprintf(page + off, %d\n, journal_enable_debug);
-   *eof = 1;
-   return ret;
+   jbd_debugfs_dir = debugfs_create_dir(jbd, NULL);
+   if (jbd_debugfs_dir)
+   jbd_debug = debugfs_create_u8(jbd-debug, S_IRUGO,
+  jbd_debugfs_dir,
+  journal_enable_debug);
 }
 
-static int write_jbd_debug(struct file *file, const char __user *buffer,
-  unsigned long count, void *data)
+static void __exit jbd_remove_debugfs_entry(void)
 {
-   char buf[32];
-
-   if (count  ARRAY_SIZE(buf) - 1)
-   count = ARRAY_SIZE(buf) - 1;
-   if (copy_from_user(buf, buffer, count))
-   return -EFAULT;
-   buf[ARRAY_SIZE(buf) - 1] = '\0';
-   journal_enable_debug = simple_strtoul(buf, NULL, 10);
-   return count;
+   debugfs_remove(jbd_debug);
+   debugfs_remove(jbd_debugfs_dir);
 }
 
-#define JBD_PROC_NAME sys/fs/jbd-debug
+#else
 
-static void __init create_jbd_proc_entry(void)
+static inline void jbd_create_debugfs_entry(void)
 {
-   proc_jbd_debug = create_proc_entry(JBD_PROC_NAME, 0644, NULL);
-   if (proc_jbd_debug) {
-   /* Why is this so hard? */
-   proc_jbd_debug-read_proc = read_jbd_debug;
-   proc_jbd_debug-write_proc = write_jbd_debug;
-   }
 }
 
-static void __exit remove_jbd_proc_entry(void)
+static inline void jbd_remove_debugfs_entry(void)
 {
-   if (proc_jbd_debug)
-   remove_proc_entry(JBD_PROC_NAME, NULL);
 }
 
-#else
-
-#define create_jbd_proc_entry() do {} while (0)
-#define remove_jbd_proc_entry() do {} while (0)
-
 #endif
 
 struct kmem_cache *jbd_handle_cache;
@@ -1965,7 +1943,7 @@ static int __init journal_init(void)
ret = journal_init_caches();
if (ret != 0

- jbd-config_jbd_debug-cannot-create-proc-entry-fix.patch removed from -mm tree

2007-10-18 Thread akpm

The patch titled
 jbd-config_jbd_debug-cannot-create-proc-entry-fix
has been removed from the -mm tree.  Its filename was
 jbd-config_jbd_debug-cannot-create-proc-entry-fix.patch

This patch was dropped because it was folded into 
jbd-config_jbd_debug-cannot-create-proc-entry.patch

--
Subject: jbd-config_jbd_debug-cannot-create-proc-entry-fix
From: Andrew Morton [EMAIL PROTECTED]

- use `#ifdef foo' instead of `#if defined(foo)'

- CONFIG_JBD_DEBUG depends on CONFIG_DEBUG_FS so we don't need to duplicate
  that logic in the .c file ifdefs

- Make journal_enable_debug __read_mostly just for the heck of it

- Make jbd_debugfs_dir and jbd_debug static

- debugfs_remove(NULL) is legal: remove unneeded tests

- jbd_create_debugfs_entry is a better name than create_jbd_debugfs_entry

- ditto remove_jbd_debugfs_entry

- C functions are preferred over macros

- Avoid declaring multiple variables in a single line.

Cc: Jose R. Santos [EMAIL PROTECTED]
Cc: linux-ext4@vger.kernel.org
Cc: Jan Kara [EMAIL PROTECTED]
Cc: Jose R. Santos [EMAIL PROTECTED]
Signed-off-by: Andrew Morton [EMAIL PROTECTED]
---

 fs/jbd/journal.c |   34 ++
 1 file changed, 18 insertions(+), 16 deletions(-)

diff -puN fs/jbd/journal.c~jbd-config_jbd_debug-cannot-create-proc-entry-fix 
fs/jbd/journal.c
--- a/fs/jbd/journal.c~jbd-config_jbd_debug-cannot-create-proc-entry-fix
+++ a/fs/jbd/journal.c
@@ -1858,16 +1858,15 @@ void journal_put_journal_head(struct jou
 /*
  * debugfs tunables
  */
-#if defined(CONFIG_JBD_DEBUG)
-u8 journal_enable_debug;
-EXPORT_SYMBOL(journal_enable_debug);
-#endif
+#ifdef CONFIG_JBD_DEBUG
 
-#if defined(CONFIG_JBD_DEBUG)  defined(CONFIG_DEBUG_FS)
+u8 journal_enable_debug __read_mostly;
+EXPORT_SYMBOL(journal_enable_debug);
 
-struct dentry  *jbd_debugfs_dir, *jbd_debug;
+static struct dentry *jbd_debugfs_dir;
+static struct dentry *jbd_debug;
 
-static void __init create_jbd_debugfs_entry(void)
+static void __init jbd_create_debugfs_entry(void)
 {
jbd_debugfs_dir = debugfs_create_dir(jbd, NULL);
if (jbd_debugfs_dir)
@@ -1876,18 +1875,21 @@ static void __init create_jbd_debugfs_en
   journal_enable_debug);
 }
 
-static void __exit remove_jbd_debugfs_entry(void)
+static void __exit jbd_remove_debugfs_entry(void)
 {
-   if (jbd_debug)
-   debugfs_remove(jbd_debug);
-   if (jbd_debugfs_dir)
-   debugfs_remove(jbd_debugfs_dir);
+   debugfs_remove(jbd_debug);
+   debugfs_remove(jbd_debugfs_dir);
 }
 
 #else
 
-#define create_jbd_debugfs_entry() do {} while (0)
-#define remove_jbd_debugfs_entry() do {} while (0)
+static inline void jbd_create_debugfs_entry(void)
+{
+}
+
+static inline void jbd_remove_debugfs_entry(void)
+{
+}
 
 #endif
 
@@ -1945,7 +1947,7 @@ static int __init journal_init(void)
ret = journal_init_caches();
if (ret != 0)
journal_destroy_caches();
-   create_jbd_debugfs_entry();
+   jbd_create_debugfs_entry();
return ret;
 }
 
@@ -1956,7 +1958,7 @@ static void __exit journal_exit(void)
if (n)
printk(KERN_EMERG JBD: leaked %d journal_heads!\n, n);
 #endif
-   remove_jbd_debugfs_entry();
+   jbd_remove_debugfs_entry();
journal_destroy_caches();
 }
 
_

Patches currently in -mm which might be from [EMAIL PROTECTED] are

origin.patch
console-keyboard-events-and-accessibility.patch
add-kernel-notifierc.patch
console-events-and-accessibility.patch
fix-random-hard-freeze-with-avm-cards-using-b1dma.patch
jbd-config_jbd_debug-cannot-create-proc-entry.patch
jbd-config_jbd_debug-cannot-create-proc-entry-fix.patch
task-containersv11-basic-task-container-framework-fix.patch
task-containersv11-shared-container-subsystem-group-arrays-simplify-proc-cgroups-fix.patch
task-containersv11-shared-container-subsystem-group-arrays-include-fix.patch
add-containerstats-v3-fix.patch
pid-namespaces-dynamic-kmem-cache-allocator-for-pid-namespaces-fix.patch
pid-namespaces-define-is_global_init-and-is_container_init-fix.patch
pid-namespaces-define-is_global_init-and-is_container_init-versus-x86_64-mm-i386-show-unhandled-signals-v3.patch
lockdep-fix-mismatched-lockdep_depth-curr_chain_hash-checkpatch-fixes.patch
fs-superc-use-list_for_each_entry-instead-of-list_for_each-fix.patch
pid-namespaces-helpers-to-find-the-task-by-its-numerical-ids-fix.patch
pid-namespaces-changes-to-show-virtual-ids-to-user-use-find_task_by_pid_ns-in-places-that-operate-with-virtual-fix.patch
pid-namespaces-changes-to-show-virtual-ids-to-user-use-find_task_by_pid_ns-in-places-that-operate-with-virtual-fix-2.patch
pid-namespaces-changes-to-show-virtual-ids-to-user-use-find_task_by_pid_ns-in-places-that-operate-with-virtual-fix-3.patch
pid-namespaces-changes-to-show-virtual-ids-to-user-fix.patch
cpuset-sched_load_balance-flag-fix.patch
cpusets-decrustify-cpuset-mask-update-code-checkpatch

+ jbd-config_jbd_debug-cannot-create-proc-entry-fix.patch added to -mm tree

2007-09-26 Thread akpm

The patch titled
 jbd-config_jbd_debug-cannot-create-proc-entry-fix
has been added to the -mm tree.  Its filename is
 jbd-config_jbd_debug-cannot-create-proc-entry-fix.patch

*** Remember to use Documentation/SubmitChecklist when testing your code ***

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

--
Subject: jbd-config_jbd_debug-cannot-create-proc-entry-fix
From: Andrew Morton [EMAIL PROTECTED]

- use `#ifdef foo' instead of `#if defined(foo)'

- CONFIG_JBD_DEBUG depends on CONFIG_DEBUG_FS so we don't need to duplicate
  that logic in the .c file ifdefs

- Make journal_enable_debug __read_mostly just for the heck of it

- Make jbd_debugfs_dir and jbd_debug static

- debugfs_remove(NULL) is legal: remove unneeded tests

- jbd_create_debugfs_entry is a better name than create_jbd_debugfs_entry

- ditto remove_jbd_debugfs_entry

- C functions are preferred over macros

Cc: Jose R. Santos [EMAIL PROTECTED]
Cc: linux-ext4@vger.kernel.org
Cc: Jan Kara [EMAIL PROTECTED]
Cc: Jose R. Santos [EMAIL PROTECTED]
Signed-off-by: Andrew Morton [EMAIL PROTECTED]
---


diff -puN fs/jbd/journal.c~jbd-config_jbd_debug-cannot-create-proc-entry-fix 
fs/jbd/journal.c
--- a/fs/jbd/journal.c~jbd-config_jbd_debug-cannot-create-proc-entry-fix
+++ a/fs/jbd/journal.c
@@ -1853,16 +1853,15 @@ void journal_put_journal_head(struct jou
 /*
  * debugfs tunables
  */
-#if defined(CONFIG_JBD_DEBUG)
-u8 journal_enable_debug;
-EXPORT_SYMBOL(journal_enable_debug);
-#endif
+#ifdef CONFIG_JBD_DEBUG
 
-#if defined(CONFIG_JBD_DEBUG)  defined(CONFIG_DEBUG_FS)
+u8 journal_enable_debug __read_mostly;
+EXPORT_SYMBOL(journal_enable_debug);
 
-struct dentry  *jbd_debugfs_dir, *jbd_debug;
+static struct dentry *jbd_debugfs_dir;
+static struct dentry *jbd_debug;
 
-static void __init create_jbd_debugfs_entry(void)
+static void __init jbd_create_debugfs_entry(void)
 {
jbd_debugfs_dir = debugfs_create_dir(jbd, NULL);
if (jbd_debugfs_dir)
@@ -1871,18 +1870,21 @@ static void __init create_jbd_debugfs_en
   journal_enable_debug);
 }
 
-static void __exit remove_jbd_debugfs_entry(void)
+static void __exit jbd_remove_debugfs_entry(void)
 {
-   if (jbd_debug)
-   debugfs_remove(jbd_debug);
-   if (jbd_debugfs_dir)
-   debugfs_remove(jbd_debugfs_dir);
+   debugfs_remove(jbd_debug);
+   debugfs_remove(jbd_debugfs_dir);
 }
 
 #else
 
-#define create_jbd_debugfs_entry() do {} while (0)
-#define remove_jbd_debugfs_entry() do {} while (0)
+static inline void jbd_create_debugfs_entry(void)
+{
+}
+
+static inline void jbd_remove_debugfs_entry(void)
+{
+}
 
 #endif
 
@@ -1940,7 +1942,7 @@ static int __init journal_init(void)
ret = journal_init_caches();
if (ret != 0)
journal_destroy_caches();
-   create_jbd_debugfs_entry();
+   jbd_create_debugfs_entry();
return ret;
 }
 
@@ -1951,7 +1953,7 @@ static void __exit journal_exit(void)
if (n)
printk(KERN_EMERG JBD: leaked %d journal_heads!\n, n);
 #endif
-   remove_jbd_debugfs_entry();
+   jbd_remove_debugfs_entry();
journal_destroy_caches();
 }
 
_

Patches currently in -mm which might be from [EMAIL PROTECTED] are

missing-null-termination-in-one-wire-uevent.patch
acpi-suspend-move-acpi_sleep_prepare-outside-of-config_suspend.patch
acpi-suspend-fix-acpi_sleep-states.patch
fix-oops-in-platform-uevent.patch
slow-down-printk-during-boot.patch
slow-down-printk-during-boot-fix-2.patch
acpi-add-reboot-mechanism.patch
acpi-suppress-uninitialized-var-warning.patch
git-alsa.patch
working-3d-dri-intel-agpko-resume-for-i815-chip.patch
git-arm.patch
git-cifs-build-fix.patch
powerpc-proper-defconfig-for-crosscompiles-fix.patch
revert-gregkh-driver-warn-when-statically-allocated-kobjects-are-used.patch
fix-gregkh-driver-kobject-remove-the-static-array-for-the-name.patch
fix-2--gregkh-driver-drivers-clean-up-direct-setting-of-the-name-of-a-kset.patch
fix-gregkh-driver-drivers-clean-up-direct-setting-of-the-name-of-a-kset.patch
git-dvb.patch
git-dvb-fixup-2.patch
git-dvb-build-fix.patch
git-hwmon-fixup.patch
git-infiniband.patch
infiniband-work-around-gcc-slub-problem.patch
git-input.patch
git-input-fixup.patch
adbhid-produce-all-capslock-key-events.patch
console-keyboard-events-and-accessibility-fix.patch
console-keyboard-events-and-accessibility-fix-2.patch
first-stab-at-elantech-touchpad-driver-for-26226-testers-fix.patch
git-jg-misc-fix.patch
git-jg-warning-fixes.patch
git-kbuild.patch
git-kbuild-fixup.patch
git-kvm.patch
git-libata-all.patch
ide-arm-hack.patch
git-mips.patch
git-mmc.patch
git-mmc-fixup2.patch
mmc-fix-gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch
gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct-vs-git-mmc.patch
git-mtd.patch
git-mtd-vs-powerpc.patch
git-net.patch
git-net

Re: jbd : config_jbd_debug cannot create /proc entry

2007-09-26 Thread Andrew Morton
On Tue, 25 Sep 2007 16:36:08 +0200
Jan Kara [EMAIL PROTECTED] wrote:

  On Tue, 25 Sep 2007 07:49:38 -0500
  Jose R. Santos [EMAIL PROTECTED] wrote:
  
   On Tue, 25 Sep 2007 13:50:46 +0200
   Jan Kara [EMAIL PROTECTED] wrote:
 Jan Kara wrote:
 
 -#define create_jbd_proc_entry() do {} while (0)
 -#define remove_jbd_proc_entry() do {} while (0)
 +static ctl_table fs_table[] = {
 +{
 +.ctl_name   = -1,   /* Don't want it */
 
 
 
 shouldn't this be CTL_UNNUMBERED ?
  Oh, it should be. I didn't notice we have this :) Thanks for notifying
me. Attached is a fixed version.
   
   This was fixed in JBD2 by moving the jbd-debug file to debugfs:
   http://lkml.org/lkml/2007/7/11/334
   
   Since this code is already in the kernel, we should keep it consistent. 
   
  
  OK.  Here's a quick patch to fix this.  Adapted from the JBD2 patch.
  Let me know what you think.
   Looks fine - exactly what I've just done here :).

hm.  I found rather a lot of issues.  If this patch is derived from the
JBD2 patch then perhaps the JBD2 patch needs some looking at.

  Signed-off-by: Jose R. Santos [EMAIL PROTECTED]
   You can add Signed-off-by: Jan Kara [EMAIL PROTECTED]

I suspect you might be getting your signed-off-bys and acked-bys mixed up. 
(If not this patch, then the previous one).  Please see
Documentation/SubmittingPatches section 13 for the difference.

Jose, please review and if possible runtime test these proposed changes?



From: Andrew Morton [EMAIL PROTECTED]

- use `#ifdef foo' instead of `#if defined(foo)'

- CONFIG_JBD_DEBUG depends on CONFIG_DEBUG_FS so we don't need to duplicate
  that logic in the .c file ifdefs

- Make journal_enable_debug __read_mostly just for the heck of it

- Make jbd_debugfs_dir and jbd_debug static

- debugfs_remove(NULL) is legal: remove unneeded tests

- jbd_create_debugfs_entry is a better name than create_jbd_debugfs_entry

- ditto remove_jbd_debugfs_entry

- C functions are preferred over macros

Cc: Jose R. Santos [EMAIL PROTECTED]
Cc: linux-ext4@vger.kernel.org
Cc: Jan Kara [EMAIL PROTECTED]
Cc: Jose R. Santos [EMAIL PROTECTED]
Signed-off-by: Andrew Morton [EMAIL PROTECTED]
---


diff -puN fs/jbd/journal.c~jbd-config_jbd_debug-cannot-create-proc-entry-fix 
fs/jbd/journal.c
--- a/fs/jbd/journal.c~jbd-config_jbd_debug-cannot-create-proc-entry-fix
+++ a/fs/jbd/journal.c
@@ -1853,16 +1853,15 @@ void journal_put_journal_head(struct jou
 /*
  * debugfs tunables
  */
-#if defined(CONFIG_JBD_DEBUG)
-u8 journal_enable_debug;
-EXPORT_SYMBOL(journal_enable_debug);
-#endif
+#ifdef CONFIG_JBD_DEBUG
 
-#if defined(CONFIG_JBD_DEBUG)  defined(CONFIG_DEBUG_FS)
+u8 journal_enable_debug __read_mostly;
+EXPORT_SYMBOL(journal_enable_debug);
 
-struct dentry  *jbd_debugfs_dir, *jbd_debug;
+static struct dentry *jbd_debugfs_dir;
+static struct dentry *jbd_debug;
 
-static void __init create_jbd_debugfs_entry(void)
+static void __init jbd_create_debugfs_entry(void)
 {
jbd_debugfs_dir = debugfs_create_dir(jbd, NULL);
if (jbd_debugfs_dir)
@@ -1871,18 +1870,21 @@ static void __init create_jbd_debugfs_en
   journal_enable_debug);
 }
 
-static void __exit remove_jbd_debugfs_entry(void)
+static void __exit jbd_remove_debugfs_entry(void)
 {
-   if (jbd_debug)
-   debugfs_remove(jbd_debug);
-   if (jbd_debugfs_dir)
-   debugfs_remove(jbd_debugfs_dir);
+   debugfs_remove(jbd_debug);
+   debugfs_remove(jbd_debugfs_dir);
 }
 
 #else
 
-#define create_jbd_debugfs_entry() do {} while (0)
-#define remove_jbd_debugfs_entry() do {} while (0)
+static inline void jbd_create_debugfs_entry(void)
+{
+}
+
+static inline void jbd_remove_debugfs_entry(void)
+{
+}
 
 #endif
 
@@ -1940,7 +1942,7 @@ static int __init journal_init(void)
ret = journal_init_caches();
if (ret != 0)
journal_destroy_caches();
-   create_jbd_debugfs_entry();
+   jbd_create_debugfs_entry();
return ret;
 }
 
@@ -1951,7 +1953,7 @@ static void __exit journal_exit(void)
if (n)
printk(KERN_EMERG JBD: leaked %d journal_heads!\n, n);
 #endif
-   remove_jbd_debugfs_entry();
+   jbd_remove_debugfs_entry();
journal_destroy_caches();
 }
 
_

-
To unsubscribe from this list: send the line unsubscribe linux-ext4 in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: jbd : config_jbd_debug cannot create /proc entry

2007-09-26 Thread Jose R. Santos
On Wed, 26 Sep 2007 14:35:39 -0700
Andrew Morton [EMAIL PROTECTED] wrote:

 On Tue, 25 Sep 2007 16:36:08 +0200
 Jan Kara [EMAIL PROTECTED] wrote:
 
   On Tue, 25 Sep 2007 07:49:38 -0500
   Jose R. Santos [EMAIL PROTECTED] wrote:
   
On Tue, 25 Sep 2007 13:50:46 +0200
Jan Kara [EMAIL PROTECTED] wrote:
  Jan Kara wrote:
  
  -#define create_jbd_proc_entry() do {} while (0)
  -#define remove_jbd_proc_entry() do {} while (0)
  +static ctl_table fs_table[] = {
  +  {
  +.ctl_name   = -1, /* Don't want it */
  
  
  
  shouldn't this be CTL_UNNUMBERED ?
   Oh, it should be. I didn't notice we have this :) Thanks for 
 notifying
 me. Attached is a fixed version.

This was fixed in JBD2 by moving the jbd-debug file to debugfs:
http://lkml.org/lkml/2007/7/11/334

Since this code is already in the kernel, we should keep it consistent. 

   
   OK.  Here's a quick patch to fix this.  Adapted from the JBD2 patch.
   Let me know what you think.
Looks fine - exactly what I've just done here :).
 
 hm.  I found rather a lot of issues.  If this patch is derived from the
 JBD2 patch then perhaps the JBD2 patch needs some looking at.

Some of the changes do apply to the JBD2 patch.  I'll send a cleanup patch.

 
   Signed-off-by: Jose R. Santos [EMAIL PROTECTED]
You can add Signed-off-by: Jan Kara [EMAIL PROTECTED]
 
 I suspect you might be getting your signed-off-bys and acked-bys mixed up. 
 (If not this patch, then the previous one).  Please see
 Documentation/SubmittingPatches section 13 for the difference.
 
 Jose, please review and if possible runtime test these proposed changes?

Agree with all the changes and they worked as expected on my system. 

 From: Andrew Morton [EMAIL PROTECTED]
 
 - use `#ifdef foo' instead of `#if defined(foo)'
 
 - CONFIG_JBD_DEBUG depends on CONFIG_DEBUG_FS so we don't need to duplicate
   that logic in the .c file ifdefs
 
 - Make journal_enable_debug __read_mostly just for the heck of it
 
 - Make jbd_debugfs_dir and jbd_debug static
 
 - debugfs_remove(NULL) is legal: remove unneeded tests
 
 - jbd_create_debugfs_entry is a better name than create_jbd_debugfs_entry
 
 - ditto remove_jbd_debugfs_entry
 
 - C functions are preferred over macros
 
 Cc: Jose R. Santos [EMAIL PROTECTED]
 Cc: linux-ext4@vger.kernel.org
 Cc: Jan Kara [EMAIL PROTECTED]
 Cc: Jose R. Santos [EMAIL PROTECTED]
 Signed-off-by: Andrew Morton [EMAIL PROTECTED]

Acked-by: Jose R. Santos [EMAIL PROTECTED]

-JRS
-
To unsubscribe from this list: send the line unsubscribe linux-ext4 in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: jbd : config_jbd_debug cannot create /proc entry

2007-09-25 Thread Jose R. Santos
On Tue, 25 Sep 2007 07:49:38 -0500
Jose R. Santos [EMAIL PROTECTED] wrote:

 On Tue, 25 Sep 2007 13:50:46 +0200
 Jan Kara [EMAIL PROTECTED] wrote:
   Jan Kara wrote:
   
   -#define create_jbd_proc_entry() do {} while (0)
   -#define remove_jbd_proc_entry() do {} while (0)
   +static ctl_table fs_table[] = {
   +{
   +.ctl_name   = -1,   /* Don't want it */
   
   
   
   shouldn't this be CTL_UNNUMBERED ?
Oh, it should be. I didn't notice we have this :) Thanks for notifying
  me. Attached is a fixed version.
 
 This was fixed in JBD2 by moving the jbd-debug file to debugfs:
 http://lkml.org/lkml/2007/7/11/334
 
 Since this code is already in the kernel, we should keep it consistent. 
 

OK.  Here's a quick patch to fix this.  Adapted from the JBD2 patch.
Let me know what you think.

-JRS

commit 6cbd2ce05b7504514707ce825170a5d77abf6a6e
Author: root [EMAIL PROTECTED]
Date:   Thu Jun 14 09:40:09 2007 -0500

The jbd-debug file used to be located in /proc/sys/fs/jbd-debug, but
create_proc_entry() does not do lookups on file names that are more that one
directory deep.  This causes the entry creation to fail and hence, no proc
file is created.

Instead of fixing this on procfs might as well move the jbd2-debug file to
debugfs which would be the preferred location for this kind of tunable.  The
new location is now /sys/kernel/debug/jbd/jbd-debug.


Signed-off-by: Jose R. Santos [EMAIL PROTECTED]

diff --git a/fs/Kconfig b/fs/Kconfig
index 58a0650..a8937a6 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -219,7 +219,7 @@ config JBD
 
 config JBD_DEBUG
bool JBD (ext3) debugging support
-   depends on JBD
+   depends on JBD  DEBUG_FS
help
  If you are using the ext3 journaled file system (or potentially any
  other file system/device using JBD), this option allows you to
@@ -228,10 +228,10 @@ config JBD_DEBUG
  debugging output will be turned off.
 
  If you select Y here, then you will be able to turn on debugging
- with echo N  /proc/sys/fs/jbd-debug, where N is a number between
- 1 and 5, the higher the number, the more debugging output is
- generated.  To turn debugging off again, do
- echo 0  /proc/sys/fs/jbd-debug.
+ with echo N  /sys/kernel/debug/jbd/jbd-debug, where N is a 
+ number between 1 and 5, the higher the number, the more debugging 
+ output is generated.  To turn debugging off again, do
+ echo 0  /sys/kernel/debug/jbd/jbd-debug.
 
 config JBD2
tristate
diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c
index 06ab3c1..3cad624 100644
--- a/fs/jbd/journal.c
+++ b/fs/jbd/journal.c
@@ -35,6 +35,7 @@
 #include linux/kthread.h
 #include linux/poison.h
 #include linux/proc_fs.h
+#include linux/debugfs.h
 
 #include asm/uaccess.h
 #include asm/page.h
@@ -1939,63 +1940,38 @@ void journal_put_journal_head(struct journal_head *jh)
 }
 
 /*
- * /proc tunables
+ * debugfs tunables
  */
 #if defined(CONFIG_JBD_DEBUG)
-int journal_enable_debug;
+u8 journal_enable_debug;
 EXPORT_SYMBOL(journal_enable_debug);
 #endif
 
-#if defined(CONFIG_JBD_DEBUG)  defined(CONFIG_PROC_FS)
+#if defined(CONFIG_JBD_DEBUG)  defined(CONFIG_DEBUG_FS)
 
-static struct proc_dir_entry *proc_jbd_debug;
+struct dentry  *jbd_debugfs_dir, *jbd_debug;
 
-static int read_jbd_debug(char *page, char **start, off_t off,
- int count, int *eof, void *data)
+static void __init create_jbd_debugfs_entry(void)
 {
-   int ret;
-
-   ret = sprintf(page + off, %d\n, journal_enable_debug);
-   *eof = 1;
-   return ret;
-}
-
-static int write_jbd_debug(struct file *file, const char __user *buffer,
-  unsigned long count, void *data)
-{
-   char buf[32];
-
-   if (count  ARRAY_SIZE(buf) - 1)
-   count = ARRAY_SIZE(buf) - 1;
-   if (copy_from_user(buf, buffer, count))
-   return -EFAULT;
-   buf[ARRAY_SIZE(buf) - 1] = '\0';
-   journal_enable_debug = simple_strtoul(buf, NULL, 10);
-   return count;
-}
-
-#define JBD_PROC_NAME sys/fs/jbd-debug
-
-static void __init create_jbd_proc_entry(void)
-{
-   proc_jbd_debug = create_proc_entry(JBD_PROC_NAME, 0644, NULL);
-   if (proc_jbd_debug) {
-   /* Why is this so hard? */
-   proc_jbd_debug-read_proc = read_jbd_debug;
-   proc_jbd_debug-write_proc = write_jbd_debug;
-   }
+   jbd_debugfs_dir = debugfs_create_dir(jbd, NULL);
+   if (jbd_debugfs_dir)
+   jbd_debug = debugfs_create_u8(jbd-debug, S_IRUGO,
+  jbd_debugfs_dir,
+  journal_enable_debug);
 }
 
-static void __exit remove_jbd_proc_entry(void)
+static void __exit remove_jbd_debugfs_entry(void)
 {
-   if (proc_jbd_debug)
-   remove_proc_entry(JBD_PROC_NAME, NULL);
+   if (jbd_debug)

Re: jbd : config_jbd_debug cannot create /proc entry

2007-09-25 Thread Jan Kara
 On Tue, 25 Sep 2007 07:49:38 -0500
 Jose R. Santos [EMAIL PROTECTED] wrote:
 
  On Tue, 25 Sep 2007 13:50:46 +0200
  Jan Kara [EMAIL PROTECTED] wrote:
Jan Kara wrote:

-#define create_jbd_proc_entry() do {} while (0)
-#define remove_jbd_proc_entry() do {} while (0)
+static ctl_table fs_table[] = {
+  {
+.ctl_name   = -1, /* Don't want it */



shouldn't this be CTL_UNNUMBERED ?
 Oh, it should be. I didn't notice we have this :) Thanks for notifying
   me. Attached is a fixed version.
  
  This was fixed in JBD2 by moving the jbd-debug file to debugfs:
  http://lkml.org/lkml/2007/7/11/334
  
  Since this code is already in the kernel, we should keep it consistent. 
  
 
 OK.  Here's a quick patch to fix this.  Adapted from the JBD2 patch.
 Let me know what you think.
  Looks fine - exactly what I've just done here :).

Honza

 commit 6cbd2ce05b7504514707ce825170a5d77abf6a6e
 Author: root [EMAIL PROTECTED]
 Date:   Thu Jun 14 09:40:09 2007 -0500
 
 The jbd-debug file used to be located in /proc/sys/fs/jbd-debug, but
 create_proc_entry() does not do lookups on file names that are more that 
 one
 directory deep.  This causes the entry creation to fail and hence, no proc
 file is created.
 
 Instead of fixing this on procfs might as well move the jbd2-debug file to
 debugfs which would be the preferred location for this kind of tunable.  
 The
 new location is now /sys/kernel/debug/jbd/jbd-debug.
 
 
 Signed-off-by: Jose R. Santos [EMAIL PROTECTED]
  You can add Signed-off-by: Jan Kara [EMAIL PROTECTED]

 
 diff --git a/fs/Kconfig b/fs/Kconfig
 index 58a0650..a8937a6 100644
 --- a/fs/Kconfig
 +++ b/fs/Kconfig
 @@ -219,7 +219,7 @@ config JBD
  
  config JBD_DEBUG
   bool JBD (ext3) debugging support
 - depends on JBD
 + depends on JBD  DEBUG_FS
   help
 If you are using the ext3 journaled file system (or potentially any
 other file system/device using JBD), this option allows you to
 @@ -228,10 +228,10 @@ config JBD_DEBUG
 debugging output will be turned off.
  
 If you select Y here, then you will be able to turn on debugging
 -   with echo N  /proc/sys/fs/jbd-debug, where N is a number between
 -   1 and 5, the higher the number, the more debugging output is
 -   generated.  To turn debugging off again, do
 -   echo 0  /proc/sys/fs/jbd-debug.
 +   with echo N  /sys/kernel/debug/jbd/jbd-debug, where N is a 
 +   number between 1 and 5, the higher the number, the more debugging 
 +   output is generated.  To turn debugging off again, do
 +   echo 0  /sys/kernel/debug/jbd/jbd-debug.
  
  config JBD2
   tristate
 diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c
 index 06ab3c1..3cad624 100644
 --- a/fs/jbd/journal.c
 +++ b/fs/jbd/journal.c
 @@ -35,6 +35,7 @@
  #include linux/kthread.h
  #include linux/poison.h
  #include linux/proc_fs.h
 +#include linux/debugfs.h
  
  #include asm/uaccess.h
  #include asm/page.h
 @@ -1939,63 +1940,38 @@ void journal_put_journal_head(struct journal_head *jh)
  }
  
  /*
 - * /proc tunables
 + * debugfs tunables
   */
  #if defined(CONFIG_JBD_DEBUG)
 -int journal_enable_debug;
 +u8 journal_enable_debug;
  EXPORT_SYMBOL(journal_enable_debug);
  #endif
  
 -#if defined(CONFIG_JBD_DEBUG)  defined(CONFIG_PROC_FS)
 +#if defined(CONFIG_JBD_DEBUG)  defined(CONFIG_DEBUG_FS)
  
 -static struct proc_dir_entry *proc_jbd_debug;
 +struct dentry  *jbd_debugfs_dir, *jbd_debug;
  
 -static int read_jbd_debug(char *page, char **start, off_t off,
 -   int count, int *eof, void *data)
 +static void __init create_jbd_debugfs_entry(void)
  {
 - int ret;
 -
 - ret = sprintf(page + off, %d\n, journal_enable_debug);
 - *eof = 1;
 - return ret;
 -}
 -
 -static int write_jbd_debug(struct file *file, const char __user *buffer,
 -unsigned long count, void *data)
 -{
 - char buf[32];
 -
 - if (count  ARRAY_SIZE(buf) - 1)
 - count = ARRAY_SIZE(buf) - 1;
 - if (copy_from_user(buf, buffer, count))
 - return -EFAULT;
 - buf[ARRAY_SIZE(buf) - 1] = '\0';
 - journal_enable_debug = simple_strtoul(buf, NULL, 10);
 - return count;
 -}
 -
 -#define JBD_PROC_NAME sys/fs/jbd-debug
 -
 -static void __init create_jbd_proc_entry(void)
 -{
 - proc_jbd_debug = create_proc_entry(JBD_PROC_NAME, 0644, NULL);
 - if (proc_jbd_debug) {
 - /* Why is this so hard? */
 - proc_jbd_debug-read_proc = read_jbd_debug;
 - proc_jbd_debug-write_proc = write_jbd_debug;
 - }
 + jbd_debugfs_dir = debugfs_create_dir(jbd, NULL);
 + if (jbd_debugfs_dir)
 + jbd_debug = debugfs_create_u8(jbd-debug, S_IRUGO,
 +jbd_debugfs_dir,
 +