[v2][PATCH 1/5] Unroll essentials of do_remount_sb() into devpts

Serge E. Hallyn serue at us.ibm.com
Wed Feb 4 15:49:05 PST 2009


Quoting Sukadev Bhattiprolu (sukadev at linux.vnet.ibm.com):
> 
> From: Sukadev Bhattiprolu <sukadev at linux.vnet.ibm.com>
> Date: Tue, 27 Jan 2009 22:58:18 -0800
> Subject: [v2][PATCH 1/5] Unroll essentials of do_remount_sb() into devpts
> 
> On remount, devpts fs only needs to parse the mount options. Users cannot
> directly create/dirty files in /dev/pts so the MS_RDONLY flag and
> shrinking the dcache does not really apply to devpts.
> 
> So effectively on remount, devpts only parses the mount options and updates
> these options in its super block. As such, we could replace do_remount_sb()
> call with a direct parse_mount_options().
> 
> Doing so enables subsequent patches to avoid parsing the mount options twice
> and simplify the code.

You've dropped the update_ptmx_mode() which you used to do
inside devpts_remount().  Is that also on purpose?

> Signed-off-by: Sukadev Bhattiprolu <sukadev at linux.vnet.ibm.com>
> ---
>  fs/devpts/inode.c |    7 ++++++-
>  1 files changed, 6 insertions(+), 1 deletions(-)
> 
> diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c
> index ad186b4..de15e73 100644
> --- a/fs/devpts/inode.c
> +++ b/fs/devpts/inode.c
> @@ -442,6 +442,8 @@ static int get_init_pts_sb(struct file_system_type *fs_type, int flags,
>  		void *data, struct vfsmount *mnt)
>  {
>  	struct super_block *s;
> +	struct pts_mount_opts *opts;
> +	struct pts_fs_info *fsi;
>  	int error;
> 
>  	s = sget(fs_type, compare_init_pts_sb, set_anon_super, NULL);
> @@ -458,7 +460,10 @@ static int get_init_pts_sb(struct file_system_type *fs_type, int flags,
>  		}
>  		s->s_flags |= MS_ACTIVE;
>  	}
> -	do_remount_sb(s, flags, data, 0);
> +	fsi = DEVPTS_SB(s);
> +	opts = &fsi->mount_opts;
> +	parse_mount_options(data, PARSE_REMOUNT, opts);
> +
>  	simple_set_mnt(mnt, s);
>  	return 0;
>  }
> -- 
> 1.5.2.5


More information about the Containers mailing list