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

From: Andrew Morton
Date: Mon May 11 2009 - 18:47:41 EST


On Mon, 11 May 2009 15:15:02 -0700
Sukadev Bhattiprolu <sukadev@xxxxxxxxxxxxxxxxxx> wrote:

> Marc Dionne [marc.c.dionne@xxxxxxxxx] 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@xxxxxxxxxxxxxxxxxx>
> 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?

> Signed-off-by: Sukadev Bhattiprolu (sukadev@xxxxxxxxxx)

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?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/