On 06/29/2011 07:09 PM, NeilBrown wrote: > On Wed, 29 Jun 2011 10:28:23 -0400 Steve Dickson <SteveD@xxxxxxxxxx> wrote: > >> >> >> On 06/28/2011 06:41 AM, Prem Karat wrote: >>> >>> Currently souce and destination parameters should be passed as first and >>> second paramter while using mount.nfs. This patch allows them to be passed >>> anywhere while mounting. >>> >>> Current functionality is >>> mount.nfs source destn -o <options> >>> This patch will allow to do this >>> mount.nfs -o <options> source destn >>> or >>> mount.nfs -o <options> source -o <options> destn >>> >>> Signed-off-by: Prem Karat <prem.karat@xxxxxxxxxxxxxxxxxx> >> Committed... > > Uhmm... that's unfortunate because the patch is badly broken. > > With the patch in place, argv[2] gets destroyed. > i.e. mount cannot possibly work correctly now. > > And that is just the start of the problems. > > This patch has clearly never been tested. Hmm... well this is not true... I have 1.2.4 running on a number of machines and without a problem... But I will looking what you are saying... steved. > > I guess we need a 1.2.5 pretty quickly. :-( > > NeilBrown > > >> >> steved. >> >>> --- >>> utils/mount/mount.c | 13 +++++++++---- >>> 1 files changed, 9 insertions(+), 4 deletions(-) >>> >>> diff --git a/utils/mount/mount.c b/utils/mount/mount.c >>> index f3f0a83..62115bb 100644 >>> --- a/utils/mount/mount.c >>> +++ b/utils/mount/mount.c >>> @@ -374,7 +374,7 @@ static int try_mount(char *spec, char *mount_point, int flags, >>> int main(int argc, char *argv[]) >>> { >>> int c, flags = 0, mnt_err = 1, fake = 0; >>> - char *spec, *mount_point, *fs_type = "nfs"; >>> + char *spec = NULL, *mount_point = NULL, *fs_type = "nfs"; >>> char *extra_opts = NULL, *mount_opts = NULL; >>> uid_t uid = getuid(); >>> >>> @@ -398,9 +398,6 @@ int main(int argc, char *argv[]) >>> exit(EX_USAGE); >>> } >>> >>> - spec = argv[1]; >>> - mount_point = argv[2]; >>> - >>> mount_config_init(progname); >>> >>> argv[2] = argv[0]; /* so that getopt error messages are correct */ >>> @@ -447,6 +444,14 @@ int main(int argc, char *argv[]) >>> if (optind != argc - 2) { >>> mount_usage(); >>> goto out_usage; >>> + } else { >>> + while (optind < argc) { >>> + if (!spec) >>> + spec = argv[optind]; >>> + else >>> + mount_point = argv[optind]; >>> + optind++; >>> + } >>> } >>> >>> if (strcmp(progname, "mount.nfs4") == 0) >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html