From: Kay Sievers <kay.sievers@vrfy.org>
To: linux-hotplug@vger.kernel.org
Subject: Re: devtmpfs default permissions
Date: Thu, 05 Nov 2009 19:42:03 +0000 [thread overview]
Message-ID: <1257450123.2397.1.camel@yio.site> (raw)
In-Reply-To: <1256824970.30238.25.camel@mjollnir>
On Wed, 2009-11-04 at 16:25 +0100, Kay Sievers wrote:
> On Tue, Nov 3, 2009 at 02:24, Mark Rosenstand <rosenstand@gmail.com> wrote:
> > Works here too. Getting this on the console, though:
> >
> > tmpfs: No value for mount option 'mode'
> >
> > But hey, it works. Thanks :)
>
> Yeah, the tmpfs code mangles *data, and as we get a single superblock,
> remount is called during mount, and the tmpfs code tries to parse
> *data again which it destroyed in the first run. It's harmless and
> needs to be fixed, but I'm not sure which piece to fix at the moment.
> :)
This seems to work here.
Thanks,
Kay
From: Kay Sievers <kay.sievers@vrfy.org>
Subject: tmpfs: zap options after mangling them during parsing
Zap options list we have destroyed during parsing, to prevent
errors on repeated calls, like in the case we do kern_mount()
which might do an implicit remount() call.
Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
---
mm/shmem.c | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -2147,22 +2147,26 @@ static const struct export_operations sh
static int shmem_parse_options(char *options, struct shmem_sb_info *sbinfo,
bool remount)
{
- char *this_char, *value, *rest;
+ char *option, *value, *this_char, *rest;
- while (options != NULL) {
- this_char = options;
+ if (!options || !options[0])
+ return 0;
+
+ option = options;
+ while (option != NULL) {
+ this_char = option;
for (;;) {
/*
* NUL-terminate this option: unfortunately,
* mount options form a comma-separated list,
* but mpol's nodelist may also contain commas.
*/
- options = strchr(options, ',');
- if (options = NULL)
+ option = strchr(option, ',');
+ if (option = NULL)
break;
- options++;
- if (!isdigit(*options)) {
- options[-1] = '\0';
+ option++;
+ if (!isdigit(*option)) {
+ option[-1] = '\0';
break;
}
}
@@ -2225,6 +2229,12 @@ static int shmem_parse_options(char *opt
return 1;
}
}
+ /*
+ * Zap options list we have destroyed during parsing, to prevent
+ * errors on repeated calls, like in the case we do kern_mount()
+ * which might do an implicit remount() call.
+ */
+ options[0] = '\0';
return 0;
bad_val:
next prev parent reply other threads:[~2009-11-05 19:42 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-29 14:02 devtmpfs default permissions Mark Rosenstand
2009-10-29 16:35 ` Greg KH
2009-10-29 17:12 ` Kay Sievers
2009-10-29 23:53 ` Mark Rosenstand
2009-10-30 11:48 ` Kay Sievers
2009-11-03 1:24 ` Mark Rosenstand
2009-11-04 15:25 ` Kay Sievers
2009-11-05 19:42 ` Kay Sievers [this message]
2009-11-05 21:01 ` Greg KH
2009-11-05 22:40 ` Kay Sievers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1257450123.2397.1.camel@yio.site \
--to=kay.sievers@vrfy.org \
--cc=linux-hotplug@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.