diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-29 19:06:25 +0400 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-29 19:06:25 +0400 | 
| commit | 53113b06e48c6c38f7612c1f8043b8a0d2adf72b (patch) | |
| tree | b50f098b72b6389fde956d8272c08169ff2b53cc /fs/proc/root.c | |
| parent | 37542b6a7e73e81f8c066a48e6911e476ee3b22f (diff) | |
| parent | a4cdbd8bfb87ceff455aae85727077889b75001b (diff) | |
| download | linux-53113b06e48c6c38f7612c1f8043b8a0d2adf72b.tar.xz | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (29 commits)
  braino in internal.h
  convert simple cases of nfs-related ->get_sb() to ->mount()
  convert btrfs
  convert ceph
  convert gfs2
  convert afs
  convert ecryptfs
  convert sysfs
  convert cgroup and cpuset
  switch get_sb_ns() users
  switch procfs to ->mount()
  setting ->proc_mnt doesn't belong in proc_get_sb()
  convert cifs
  convert nilfs
  switch logfs to ->mount()
  logfs: fix a leak in get_sb
  logfs get_sb, part 3
  logfs get_sb, part 2
  logfs get_sb massage, part 1
  convert v9fs
  ...
Diffstat (limited to 'fs/proc/root.c')
| -rw-r--r-- | fs/proc/root.c | 16 | 
1 files changed, 8 insertions, 8 deletions
| diff --git a/fs/proc/root.c b/fs/proc/root.c index 93d99b316325..ef9fa8e24ad6 100644 --- a/fs/proc/root.c +++ b/fs/proc/root.c @@ -35,8 +35,8 @@ static int proc_set_super(struct super_block *sb, void *data)  	return set_anon_super(sb, NULL);  } -static int proc_get_sb(struct file_system_type *fs_type, -	int flags, const char *dev_name, void *data, struct vfsmount *mnt) +static struct dentry *proc_mount(struct file_system_type *fs_type, +	int flags, const char *dev_name, void *data)  {  	int err;  	struct super_block *sb; @@ -61,14 +61,14 @@ static int proc_get_sb(struct file_system_type *fs_type,  	sb = sget(fs_type, proc_test_super, proc_set_super, ns);  	if (IS_ERR(sb)) -		return PTR_ERR(sb); +		return ERR_CAST(sb);  	if (!sb->s_root) {  		sb->s_flags = flags;  		err = proc_fill_super(sb);  		if (err) {  			deactivate_locked_super(sb); -			return err; +			return ERR_PTR(err);  		}  		ei = PROC_I(sb->s_root->d_inode); @@ -79,11 +79,9 @@ static int proc_get_sb(struct file_system_type *fs_type,  		}  		sb->s_flags |= MS_ACTIVE; -		ns->proc_mnt = mnt;  	} -	simple_set_mnt(mnt, sb); -	return 0; +	return dget(sb->s_root);  }  static void proc_kill_sb(struct super_block *sb) @@ -97,7 +95,7 @@ static void proc_kill_sb(struct super_block *sb)  static struct file_system_type proc_fs_type = {  	.name		= "proc", -	.get_sb		= proc_get_sb, +	.mount		= proc_mount,  	.kill_sb	= proc_kill_sb,  }; @@ -115,6 +113,7 @@ void __init proc_root_init(void)  		return;  	} +	init_pid_ns.proc_mnt = proc_mnt;  	proc_symlink("mounts", NULL, "self/mounts");  	proc_net_init(); @@ -213,6 +212,7 @@ int pid_ns_prepare_proc(struct pid_namespace *ns)  	if (IS_ERR(mnt))  		return PTR_ERR(mnt); +	ns->proc_mnt = mnt;  	return 0;  } | 
