* [PATCH] nfs-utils: mount options can be lost when using bg option
@ 2009-11-05 14:03 Harshula Jayasuriya
[not found] ` <1257429825.2984.26.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: Harshula Jayasuriya @ 2009-11-05 14:03 UTC (permalink / raw)
To: Steve Dickson; +Cc: linux-nfs
Hi,
When mounting an NFS export *without* the "bg" option, try_mount() is
called only once. Before calling it, the variables mount_opts and
extra_opts are set up. Then try_mount() calls nfsmount(), the latter
assumes that the aforementioned variables can be modified. Most
significantly, it allows the variable extra_opts to be modified.
When the "bg" mount option is used *and* the first try_mount() attempt
fails, it daemonizes the process and calls try_mount() again,
unfortunately, we've lost the required mount options in the variable
extra_opts.
See https://bugzilla.redhat.com/show_bug.cgi?id=529370 for details.
Signed-off-by: Harshula Jayasuriya <harshula@redhat.com>
---
utils/mount/mount.c | 3 +++
utils/mount/nfsmount.c | 7 +++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/utils/mount/mount.c b/utils/mount/mount.c
index 355df79..6b9e164 100644
--- a/utils/mount/mount.c
+++ b/utils/mount/mount.c
@@ -593,6 +593,9 @@ int main(int argc, char *argv[])
if (mnt_err == EX_BG) {
printf(_("%s: backgrounding \"%s\"\n"),
progname, spec);
+ printf(_("%s: mount options: \"%s\"\n"),
+ progname, extra_opts);
+
fflush(stdout);
/*
diff --git a/utils/mount/nfsmount.c b/utils/mount/nfsmount.c
index 6355681..6b3356c 100644
--- a/utils/mount/nfsmount.c
+++ b/utils/mount/nfsmount.c
@@ -170,7 +170,7 @@ parse_options(char *old_opts, struct nfs_mount_data *data,
struct pmap *mnt_pmap = &mnt_server->pmap;
struct pmap *nfs_pmap = &nfs_server->pmap;
int len;
- char *opt, *opteq, *p, *opt_b;
+ char *opt, *opteq, *p, *opt_b, *tmp_opts;
char *mounthost = NULL;
char cbuf[128];
int open_quote = 0;
@@ -179,7 +179,8 @@ parse_options(char *old_opts, struct nfs_mount_data *data,
*bg = 0;
len = strlen(new_opts);
- for (p=old_opts, opt_b=NULL; p && *p; p++) {
+ tmp_opts = xstrdup(old_opts);
+ for (p=tmp_opts, opt_b=NULL; p && *p; p++) {
if (!opt_b)
opt_b = p; /* begin of the option item */
if (*p == '"')
@@ -457,10 +458,12 @@ parse_options(char *old_opts, struct nfs_mount_data *data,
goto out_bad;
*mnt_server->hostname = mounthost;
}
+ free(tmp_opts);
return 1;
bad_parameter:
nfs_error(_("%s: Bad nfs mount parameter: %s\n"), progname, opt);
out_bad:
+ free(tmp_opts);
return 0;
}
--
cya,
#
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] nfs-utils: mount options can be lost when using bg option
[not found] ` <1257429825.2984.26.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
@ 2009-11-16 18:43 ` Steve Dickson
0 siblings, 0 replies; 2+ messages in thread
From: Steve Dickson @ 2009-11-16 18:43 UTC (permalink / raw)
To: Harshula Jayasuriya; +Cc: linux-nfs
On 11/05/2009 09:03 AM, Harshula Jayasuriya wrote:
> Hi,
>
> When mounting an NFS export *without* the "bg" option, try_mount() is
> called only once. Before calling it, the variables mount_opts and
> extra_opts are set up. Then try_mount() calls nfsmount(), the latter
> assumes that the aforementioned variables can be modified. Most
> significantly, it allows the variable extra_opts to be modified.
>
> When the "bg" mount option is used *and* the first try_mount() attempt
> fails, it daemonizes the process and calls try_mount() again,
> unfortunately, we've lost the required mount options in the variable
> extra_opts.
>
> See https://bugzilla.redhat.com/show_bug.cgi?id=529370 for details.
>
> Signed-off-by: Harshula Jayasuriya <harshula@redhat.com>
Committed...
steved.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-11-16 18:43 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-05 14:03 [PATCH] nfs-utils: mount options can be lost when using bg option Harshula Jayasuriya
[not found] ` <1257429825.2984.26.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2009-11-16 18:43 ` Steve Dickson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox