Re: [v3][PATCH 5/5] Merge code for single andmultiple-instancemounts

Eric Paris
2009-05-11T23:11:20Z

On Mon, 2009-05-11 at 15:40 -0700, Andrew Morton wrote:
> On Mon, 11 May 2009 15:15:02 -0700
> Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> wrote:
>
> > Marc Dionne [marc.c.dionne@gmail.com] wrote:
> > > On 05/07/2009 07:21 PM, Sukadev Bhattiprolu wrote:
> > >> Er. I meant add following lines after the memset().
> > >>
> > >> | opts->mode = DEVPTS_DEFAULT_MODE;
> > >> | opts->ptmxmode = DEVPTS_DEFAULT_PTMX_MODE;
> > >
> > > Adding those two lines (with . instead of ->) does fix the issue for me,
> > > thanks.
> > >
> > > | > Of course we would still need to understand if/
> > > | > why this patch changes the settings.
> > >
> > > That particular patch changed things because the original memcpy in
> > > new_pts_mount() did this:
> > >
> > > memcpy(&fsi->mount_opts, opts, sizeof(opts));
> > >
> > > where opts was a pointer, not a structure. So only the first few bytes of
> > > the blank opts actually got copied over. The patch moved this memcpy to
> > > devpts_get_sb() and in the process fixed the sizeof error.
> >
> > Here is a cleaner fix - When user space (/etc/rc.sysinit on RHEL5) mounts
> > devpts, this problem might be masked since the mount system call could pass
> > a non-NULL 'data' parmeter to devpts_get_sb().
> >
> > I tested this patch by directly calling the system call mount() with a NULL
> > data parameter. If you/Eric/Peter can confirm that this works for you, I will
> > send this patch to Andrew.
>
> You already sent it ;)
>
> > >From 2f7746f4df78ff57125c4714f0cd64e739ccf804 Mon Sep 17 00:00:00 2001
> > From: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
> > Date: Mon, 11 May 2009 13:11:11 -0700
> > Subject: [PATCH] devpts: Correctly set default options
> >
> > devpts_get_sb() calls memset(0) to clear mount options and calls
> > parse_mount_options() if user specified any mount options. The memset(0) is
> > bogus since the 'mode' and 'ptmxmode' options are non-zero by default.
> > parse_mount_options() restores options to default anyway and can properly deal
> > with NULL mount options.
> >
> > So in devpts_get_sb() remove memset(0) and call parse_mount_options() even for
> > NULL mount options.
> >
> > Bug reported by Eric Paris: http://lkml.org/lkml/2009/5/7/448.
>
> This patch fixes a post-2.6.29 regression, yes?

I believe so, yes.

> > Signed-off-by: Sukadev Bhattiprolu (sukadev@us.ibm.com)
>
> Please use angled brackets around the email address. Some lame
> person's scripts probably require it. <whistles innocently>
>
> Under the he-merged-it-last rule, this patch should formally go via
> Al's VFS tree. But I would happily accept a stfu-and-merge it?

You have another tested, reviewed, and ack'd on this patch from me. I
personally would say send it away!

-Eric