Re: Linux 2.6.39-rc3

From: Dave Jones
Date: Tue Apr 12 2011 - 16:13:34 EST


On Tue, Apr 12, 2011 at 12:55:24PM -0700, Linus Torvalds wrote:
> On Tue, Apr 12, 2011 at 12:21 PM, Dave Jones <davej@xxxxxxxxxx> wrote:
> >
> > looks like this was caused by 93f1c20bc8cdb757be50566eff88d65c3b26881f
> >
> > perhaps adding that string to the end of the line would preserve what mount expects ?
>
> Care to test? Otherwise I'll just revert the thing.. It's clearly not
> valid behavior to randomly add some new field into the middle of a
> /proc file.

Moving it to the EOL seems to restore things to how it looked in .38
I don't know if this breaks anything else. (I haven't dug to see why that
field was added, so I don't know what tool is using it, or what was used
to test the original patch in the first place).

Dave

--

93f1c20bc8cdb757be50566eff88d65c3b26881f added a uuid field in the middle of
a line in /proc/self/mountinfo. This broke the ABI expected by mount(8).
Moving it to the end restores the output to what it expects.

Signed-off-by: Dave Jones <davej@xxxxxxxxxx>

diff --git a/fs/namespace.c b/fs/namespace.c
index 7dba2ed..cc2df9d 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -1085,10 +1085,6 @@ static int show_mountinfo(struct seq_file *m, void *v)
if (IS_MNT_UNBINDABLE(mnt))
seq_puts(m, " unbindable");

- if (!uuid_is_nil(mnt->mnt_sb->s_uuid))
- /* print the uuid */
- seq_printf(m, " uuid:%pU", mnt->mnt_sb->s_uuid);
-
/* Filesystem specific data */
seq_puts(m, " - ");
show_type(m, sb);
@@ -1105,6 +1101,10 @@ static int show_mountinfo(struct seq_file *m, void *v)
goto out;
if (sb->s_op->show_options)
err = sb->s_op->show_options(m, mnt);
+ if (!uuid_is_nil(mnt->mnt_sb->s_uuid))
+ /* print the uuid */
+ seq_printf(m, " uuid:%pU", mnt->mnt_sb->s_uuid);
+
seq_putc(m, '\n');
out:
return err;

--
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/