diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 12:04:37 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 12:04:37 -0700 | 
| commit | 88ed86fee6651033de9b7038dac7869a9f19775a (patch) | |
| tree | 38b638d2e7cba110ec271275738f221feb7e0a37 /fs/filesystems.c | |
| parent | 3856d30ded1fe43c6657927ebad402d25cd128f4 (diff) | |
| parent | 59c7572e82d69483a66eaa67b46548baeb69ecf4 (diff) | |
Merge branch 'proc' of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc
* 'proc' of git://git.kernel.org/pub/scm/linux/kernel/git/adobriyan/proc: (35 commits)
  proc: remove fs/proc/proc_misc.c
  proc: move /proc/vmcore creation to fs/proc/vmcore.c
  proc: move pagecount stuff to fs/proc/page.c
  proc: move all /proc/kcore stuff to fs/proc/kcore.c
  proc: move /proc/schedstat boilerplate to kernel/sched_stats.h
  proc: move /proc/modules boilerplate to kernel/module.c
  proc: move /proc/diskstats boilerplate to block/genhd.c
  proc: move /proc/zoneinfo boilerplate to mm/vmstat.c
  proc: move /proc/vmstat boilerplate to mm/vmstat.c
  proc: move /proc/pagetypeinfo boilerplate to mm/vmstat.c
  proc: move /proc/buddyinfo boilerplate to mm/vmstat.c
  proc: move /proc/vmallocinfo to mm/vmalloc.c
  proc: move /proc/slabinfo boilerplate to mm/slub.c, mm/slab.c
  proc: move /proc/slab_allocators boilerplate to mm/slab.c
  proc: move /proc/interrupts boilerplate code to fs/proc/interrupts.c
  proc: move /proc/stat to fs/proc/stat.c
  proc: move rest of /proc/partitions code to block/genhd.c
  proc: move /proc/cpuinfo code to fs/proc/cpuinfo.c
  proc: move /proc/devices code to fs/proc/devices.c
  proc: move rest of /proc/locks to fs/locks.c
  ...
Diffstat (limited to 'fs/filesystems.c')
| -rw-r--r-- | fs/filesystems.c | 39 | 
1 files changed, 39 insertions, 0 deletions
diff --git a/fs/filesystems.c b/fs/filesystems.c index f37f8726283..d0e20ced62d 100644 --- a/fs/filesystems.c +++ b/fs/filesystems.c @@ -8,6 +8,8 @@  #include <linux/syscalls.h>  #include <linux/fs.h> +#include <linux/proc_fs.h> +#include <linux/seq_file.h>  #include <linux/slab.h>  #include <linux/kmod.h>  #include <linux/init.h> @@ -214,6 +216,43 @@ int get_filesystem_list(char * buf)  	return len;  } +#ifdef CONFIG_PROC_FS +static int filesystems_proc_show(struct seq_file *m, void *v) +{ +	struct file_system_type * tmp; + +	read_lock(&file_systems_lock); +	tmp = file_systems; +	while (tmp) { +		seq_printf(m, "%s\t%s\n", +			(tmp->fs_flags & FS_REQUIRES_DEV) ? "" : "nodev", +			tmp->name); +		tmp = tmp->next; +	} +	read_unlock(&file_systems_lock); +	return 0; +} + +static int filesystems_proc_open(struct inode *inode, struct file *file) +{ +	return single_open(file, filesystems_proc_show, NULL); +} + +static const struct file_operations filesystems_proc_fops = { +	.open		= filesystems_proc_open, +	.read		= seq_read, +	.llseek		= seq_lseek, +	.release	= single_release, +}; + +static int __init proc_filesystems_init(void) +{ +	proc_create("filesystems", 0, NULL, &filesystems_proc_fops); +	return 0; +} +module_init(proc_filesystems_init); +#endif +  struct file_system_type *get_fs_type(const char *name)  {  	struct file_system_type *fs;  | 
