diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-01 17:51:54 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-01 17:51:54 -0700 | 
| commit | 20b4fb485227404329e41ad15588afad3df23050 (patch) | |
| tree | f3e099f0ab3da8a93b447203e294d2bb22f6dc05 /kernel | |
| parent | b9394d8a657cd3c064fa432aa0905c1b58b38fe9 (diff) | |
| parent | ac3e3c5b1164397656df81b9e9ab4991184d3236 (diff) | |
| download | linux-20b4fb485227404329e41ad15588afad3df23050.tar.bz2 | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull VFS updates from Al Viro,
Misc cleanups all over the place, mainly wrt /proc interfaces (switch
create_proc_entry to proc_create(), get rid of the deprecated
create_proc_read_entry() in favor of using proc_create_data() and
seq_file etc).
7kloc removed.
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (204 commits)
  don't bother with deferred freeing of fdtables
  proc: Move non-public stuff from linux/proc_fs.h to fs/proc/internal.h
  proc: Make the PROC_I() and PDE() macros internal to procfs
  proc: Supply a function to remove a proc entry by PDE
  take cgroup_open() and cpuset_open() to fs/proc/base.c
  ppc: Clean up scanlog
  ppc: Clean up rtas_flash driver somewhat
  hostap: proc: Use remove_proc_subtree()
  drm: proc: Use remove_proc_subtree()
  drm: proc: Use minor->index to label things, not PDE->name
  drm: Constify drm_proc_list[]
  zoran: Don't print proc_dir_entry data in debug
  reiserfs: Don't access the proc_dir_entry in r_open(), r_start() r_show()
  proc: Supply an accessor for getting the data from a PDE's parent
  airo: Use remove_proc_subtree()
  rtl8192u: Don't need to save device proc dir PDE
  rtl8187se: Use a dir under /proc/net/r8180/
  proc: Add proc_mkdir_data()
  proc: Move some bits from linux/proc_fs.h to linux/{of.h,signal.h,tty.h}
  proc: Move PDE_NET() to fs/proc/proc_net.c
  ...
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/acct.c | 2 | ||||
| -rw-r--r-- | kernel/cgroup.c | 15 | ||||
| -rw-r--r-- | kernel/configs.c | 2 | ||||
| -rw-r--r-- | kernel/cpuset.c | 15 | ||||
| -rw-r--r-- | kernel/exit.c | 2 | ||||
| -rw-r--r-- | kernel/irq/proc.c | 20 | ||||
| -rw-r--r-- | kernel/nsproxy.c | 6 | ||||
| -rw-r--r-- | kernel/pid.c | 1 | ||||
| -rw-r--r-- | kernel/pid_namespace.c | 2 | ||||
| -rw-r--r-- | kernel/profile.c | 6 | ||||
| -rw-r--r-- | kernel/sched/stats.c | 7 | ||||
| -rw-r--r-- | kernel/user.c | 2 | ||||
| -rw-r--r-- | kernel/user_namespace.c | 2 | ||||
| -rw-r--r-- | kernel/utsname.c | 2 | 
14 files changed, 26 insertions, 58 deletions
diff --git a/kernel/acct.c b/kernel/acct.c index b9bd7f098ee5..85389fe2abd0 100644 --- a/kernel/acct.c +++ b/kernel/acct.c @@ -543,6 +543,7 @@ static void do_acct_process(struct bsd_acct_struct *acct,  	 * Kernel segment override to datasegment and write it  	 * to the accounting file.  	 */ +	file_start_write(file);  	fs = get_fs();  	set_fs(KERNEL_DS);  	/* @@ -554,6 +555,7 @@ static void do_acct_process(struct bsd_acct_struct *acct,  			       sizeof(acct_t), &file->f_pos);  	current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim;  	set_fs(fs); +	file_end_write(file);  out:  	revert_creds(orig_cred);  } diff --git a/kernel/cgroup.c b/kernel/cgroup.c index d3abce2d6455..2a9926275f80 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -4678,7 +4678,7 @@ out:   */  /* TODO: Use a proper seq_file iterator */ -static int proc_cgroup_show(struct seq_file *m, void *v) +int proc_cgroup_show(struct seq_file *m, void *v)  {  	struct pid *pid;  	struct task_struct *tsk; @@ -4730,19 +4730,6 @@ out:  	return retval;  } -static int cgroup_open(struct inode *inode, struct file *file) -{ -	struct pid *pid = PROC_I(inode)->pid; -	return single_open(file, proc_cgroup_show, pid); -} - -const struct file_operations proc_cgroup_operations = { -	.open		= cgroup_open, -	.read		= seq_read, -	.llseek		= seq_lseek, -	.release	= single_release, -}; -  /* Display information about each subsystem and each hierarchy */  static int proc_cgroupstats_show(struct seq_file *m, void *v)  { diff --git a/kernel/configs.c b/kernel/configs.c index 42e8fa075eed..c18b1f1ae515 100644 --- a/kernel/configs.c +++ b/kernel/configs.c @@ -79,7 +79,7 @@ static int __init ikconfig_init(void)  	if (!entry)  		return -ENOMEM; -	entry->size = kernel_config_data_size; +	proc_set_size(entry, kernel_config_data_size);  	return 0;  } diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 12331120767c..64b3f791bbe5 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c @@ -2609,7 +2609,7 @@ void __cpuset_memory_pressure_bump(void)   *    and we take cpuset_mutex, keeping cpuset_attach() from changing it   *    anyway.   */ -static int proc_cpuset_show(struct seq_file *m, void *unused_v) +int proc_cpuset_show(struct seq_file *m, void *unused_v)  {  	struct pid *pid;  	struct task_struct *tsk; @@ -2643,19 +2643,6 @@ out_free:  out:  	return retval;  } - -static int cpuset_open(struct inode *inode, struct file *file) -{ -	struct pid *pid = PROC_I(inode)->pid; -	return single_open(file, proc_cpuset_show, pid); -} - -const struct file_operations proc_cpuset_operations = { -	.open		= cpuset_open, -	.read		= seq_read, -	.llseek		= seq_lseek, -	.release	= single_release, -};  #endif /* CONFIG_PROC_PID_CPUSET */  /* Display task mems_allowed in /proc/<pid>/status file. */ diff --git a/kernel/exit.c b/kernel/exit.c index 6e3151ec900f..af2eb3cbd499 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -847,7 +847,7 @@ void do_exit(long code)  		exit_io_context(tsk);  	if (tsk->splice_pipe) -		__free_pipe_info(tsk->splice_pipe); +		free_pipe_info(tsk->splice_pipe);  	if (tsk->task_frag.page)  		put_page(tsk->task_frag.page); diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c index 397db02209ed..19ed5c425c3b 100644 --- a/kernel/irq/proc.c +++ b/kernel/irq/proc.c @@ -76,7 +76,7 @@ static int irq_affinity_list_proc_show(struct seq_file *m, void *v)  static ssize_t write_irq_affinity(int type, struct file *file,  		const char __user *buffer, size_t count, loff_t *pos)  { -	unsigned int irq = (int)(long)PDE(file_inode(file))->data; +	unsigned int irq = (int)(long)PDE_DATA(file_inode(file));  	cpumask_var_t new_value;  	int err; @@ -131,17 +131,17 @@ static ssize_t irq_affinity_list_proc_write(struct file *file,  static int irq_affinity_proc_open(struct inode *inode, struct file *file)  { -	return single_open(file, irq_affinity_proc_show, PDE(inode)->data); +	return single_open(file, irq_affinity_proc_show, PDE_DATA(inode));  }  static int irq_affinity_list_proc_open(struct inode *inode, struct file *file)  { -	return single_open(file, irq_affinity_list_proc_show, PDE(inode)->data); +	return single_open(file, irq_affinity_list_proc_show, PDE_DATA(inode));  }  static int irq_affinity_hint_proc_open(struct inode *inode, struct file *file)  { -	return single_open(file, irq_affinity_hint_proc_show, PDE(inode)->data); +	return single_open(file, irq_affinity_hint_proc_show, PDE_DATA(inode));  }  static const struct file_operations irq_affinity_proc_fops = { @@ -212,7 +212,7 @@ out:  static int default_affinity_open(struct inode *inode, struct file *file)  { -	return single_open(file, default_affinity_show, PDE(inode)->data); +	return single_open(file, default_affinity_show, PDE_DATA(inode));  }  static const struct file_operations default_affinity_proc_fops = { @@ -233,7 +233,7 @@ static int irq_node_proc_show(struct seq_file *m, void *v)  static int irq_node_proc_open(struct inode *inode, struct file *file)  { -	return single_open(file, irq_node_proc_show, PDE(inode)->data); +	return single_open(file, irq_node_proc_show, PDE_DATA(inode));  }  static const struct file_operations irq_node_proc_fops = { @@ -256,7 +256,7 @@ static int irq_spurious_proc_show(struct seq_file *m, void *v)  static int irq_spurious_proc_open(struct inode *inode, struct file *file)  { -	return single_open(file, irq_spurious_proc_show, PDE(inode)->data); +	return single_open(file, irq_spurious_proc_show, PDE_DATA(inode));  }  static const struct file_operations irq_spurious_proc_fops = { @@ -366,11 +366,7 @@ void unregister_irq_proc(unsigned int irq, struct irq_desc *desc)  void unregister_handler_proc(unsigned int irq, struct irqaction *action)  { -	if (action->dir) { -		struct irq_desc *desc = irq_to_desc(irq); - -		remove_proc_entry(action->dir->name, desc->dir); -	} +	proc_remove(action->dir);  }  static void register_default_affinity_proc(void) diff --git a/kernel/nsproxy.c b/kernel/nsproxy.c index afc0456f227a..364ceab15f0c 100644 --- a/kernel/nsproxy.c +++ b/kernel/nsproxy.c @@ -22,7 +22,7 @@  #include <linux/pid_namespace.h>  #include <net/net_namespace.h>  #include <linux/ipc_namespace.h> -#include <linux/proc_fs.h> +#include <linux/proc_ns.h>  #include <linux/file.h>  #include <linux/syscalls.h> @@ -241,7 +241,7 @@ SYSCALL_DEFINE2(setns, int, fd, int, nstype)  	const struct proc_ns_operations *ops;  	struct task_struct *tsk = current;  	struct nsproxy *new_nsproxy; -	struct proc_inode *ei; +	struct proc_ns *ei;  	struct file *file;  	int err; @@ -250,7 +250,7 @@ SYSCALL_DEFINE2(setns, int, fd, int, nstype)  		return PTR_ERR(file);  	err = -EINVAL; -	ei = PROC_I(file_inode(file)); +	ei = get_proc_ns(file_inode(file));  	ops = ei->ns_ops;  	if (nstype && (ops->type != nstype))  		goto out; diff --git a/kernel/pid.c b/kernel/pid.c index 6283d6412aff..0db3e791a06d 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -36,6 +36,7 @@  #include <linux/pid_namespace.h>  #include <linux/init_task.h>  #include <linux/syscalls.h> +#include <linux/proc_ns.h>  #include <linux/proc_fs.h>  #define pid_hashfn(nr, ns)	\ diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c index 69473c4a653f..6917e8edb48e 100644 --- a/kernel/pid_namespace.c +++ b/kernel/pid_namespace.c @@ -15,7 +15,7 @@  #include <linux/err.h>  #include <linux/acct.h>  #include <linux/slab.h> -#include <linux/proc_fs.h> +#include <linux/proc_ns.h>  #include <linux/reboot.h>  #include <linux/export.h> diff --git a/kernel/profile.c b/kernel/profile.c index dc3384ee874e..0bf400737660 100644 --- a/kernel/profile.c +++ b/kernel/profile.c @@ -462,10 +462,10 @@ static const struct file_operations prof_cpu_mask_proc_fops = {  	.write		= prof_cpu_mask_proc_write,  }; -void create_prof_cpu_mask(struct proc_dir_entry *root_irq_dir) +void create_prof_cpu_mask(void)  {  	/* create /proc/irq/prof_cpu_mask */ -	proc_create("prof_cpu_mask", 0600, root_irq_dir, &prof_cpu_mask_proc_fops); +	proc_create("irq/prof_cpu_mask", 0600, NULL, &prof_cpu_mask_proc_fops);  }  /* @@ -600,7 +600,7 @@ int __ref create_proc_profile(void) /* false positive from hotcpu_notifier */  			    NULL, &proc_profile_operations);  	if (!entry)  		return 0; -	entry->size = (1+prof_len) * sizeof(atomic_t); +	proc_set_size(entry, (1 + prof_len) * sizeof(atomic_t));  	hotcpu_notifier(profile_cpu_callback, 0);  	return 0;  } diff --git a/kernel/sched/stats.c b/kernel/sched/stats.c index e036eda1a9c9..da98af347e8b 100644 --- a/kernel/sched/stats.c +++ b/kernel/sched/stats.c @@ -130,16 +130,11 @@ static int schedstat_open(struct inode *inode, struct file *file)  	return seq_open(file, &schedstat_sops);  } -static int schedstat_release(struct inode *inode, struct file *file) -{ -	return 0; -}; -  static const struct file_operations proc_schedstat_operations = {  	.open    = schedstat_open,  	.read    = seq_read,  	.llseek  = seq_lseek, -	.release = schedstat_release, +	.release = seq_release,  };  static int __init proc_schedstat_init(void) diff --git a/kernel/user.c b/kernel/user.c index 8e635a18ab52..69b4c3d48cde 100644 --- a/kernel/user.c +++ b/kernel/user.c @@ -16,7 +16,7 @@  #include <linux/interrupt.h>  #include <linux/export.h>  #include <linux/user_namespace.h> -#include <linux/proc_fs.h> +#include <linux/proc_ns.h>  /*   * userns count is 1 for root user, 1 for init_uts_ns, diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c index e134d8f365dd..d8c30db06c5b 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c @@ -9,7 +9,7 @@  #include <linux/nsproxy.h>  #include <linux/slab.h>  #include <linux/user_namespace.h> -#include <linux/proc_fs.h> +#include <linux/proc_ns.h>  #include <linux/highuid.h>  #include <linux/cred.h>  #include <linux/securebits.h> diff --git a/kernel/utsname.c b/kernel/utsname.c index a47fc5de3113..2fc8576efaa8 100644 --- a/kernel/utsname.c +++ b/kernel/utsname.c @@ -15,7 +15,7 @@  #include <linux/err.h>  #include <linux/slab.h>  #include <linux/user_namespace.h> -#include <linux/proc_fs.h> +#include <linux/proc_ns.h>  static struct uts_namespace *create_uts_ns(void)  {  |