Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 71398
b: refs/heads/master
c: c2a9159
h: refs/heads/master
v: v3
  • Loading branch information
Jose R. Santos authored and Linus Torvalds committed Oct 19, 2007
1 parent 21a9f5a commit d6a26fe
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 50 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1c099244485ff8bb93c2cd41304a445adc7f54e6
refs/heads/master: c2a9159cdd8b334a0dfaf69d8b07cd57b5272baa
10 changes: 5 additions & 5 deletions trunk/fs/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
64 changes: 21 additions & 43 deletions trunk/fs/jbd/journal.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -1851,64 +1852,41 @@ void journal_put_journal_head(struct journal_head *jh)
}

/*
* /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;
Expand Down Expand Up @@ -1965,7 +1943,7 @@ static int __init journal_init(void)
ret = journal_init_caches();
if (ret != 0)
journal_destroy_caches();
create_jbd_proc_entry();
jbd_create_debugfs_entry();
return ret;
}

Expand All @@ -1976,7 +1954,7 @@ static void __exit journal_exit(void)
if (n)
printk(KERN_EMERG "JBD: leaked %d journal_heads!\n", n);
#endif
remove_jbd_proc_entry();
jbd_remove_debugfs_entry();
journal_destroy_caches();
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/include/linux/jbd.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
* CONFIG_JBD_DEBUG is on.
*/
#define JBD_EXPENSIVE_CHECKING
extern int journal_enable_debug;
extern u8 journal_enable_debug;

#define jbd_debug(n, f, a...) \
do { \
Expand Down

0 comments on commit d6a26fe

Please sign in to comment.