* [PATCH 03/11] nfs-utils: mount: mount -s (sloppy) option
@ 2007-02-26 11:17 Steve Dickson
0 siblings, 0 replies; only message in thread
From: Steve Dickson @ 2007-02-26 11:17 UTC (permalink / raw)
To: nfs
[-- Attachment #1: Type: text/plain, Size: 0 bytes --]
[-- Attachment #2: patch-03.dif --]
[-- Type: text/x-patch, Size: 4498 bytes --]
commit 72baf6d14f166da0531bfe02273861e1c394c3bd
Author: Karel Zak <kzak@redhat.com>
Date: Sat Feb 24 15:07:17 2007 -0500
Added support for the mount -s (sloppy) option
Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
diff --git a/utils/mount/mount.c b/utils/mount/mount.c
index 05ff90f..13bffbc 100644
--- a/utils/mount/mount.c
+++ b/utils/mount/mount.c
@@ -44,6 +44,7 @@ char *progname;
int nomtab;
int verbose;
int mounttype;
+int sloppy;
static struct option longopts[] = {
{ "fake", 0, 0, 'f' },
@@ -176,7 +177,6 @@ void copy_mntent(struct mntent *ment, nfs_mntent_t *nment)
int add_mtab(char *fsname, char *mount_point, char *fstype, int flags, char *opts, int freq, int passno)
{
struct mntent ment;
- int fd;
FILE *mtab;
ment.mnt_fsname = fsname;
@@ -236,6 +236,7 @@ void mount_usage()
printf("\t-w\t\tMount file system read-write\n");
printf("\t-f\t\tFake mount, don't actually mount\n");
printf("\t-n\t\tDo not update /etc/mtab\n");
+ printf("\t-s\t\tTolerate sloppy mount options rather than failing.\n");
printf("\t-h\t\tPrint this help\n");
printf("\tversion\t\tnfs4 - NFS version 4, nfs - older NFS version supported\n");
printf("\tnfsoptions\tRefer mount.nfs(8) or nfs(5)\n\n");
@@ -370,7 +371,7 @@ int main(int argc, char *argv[])
return 0;
}
- while ((c = getopt_long (argc - 2, argv + 2, "rt:vVwfno:h",
+ while ((c = getopt_long (argc - 2, argv + 2, "rt:vVwfno:hs",
longopts, NULL)) != -1) {
switch (c) {
case 'r':
@@ -400,6 +401,9 @@ int main(int argc, char *argv[])
else
mount_opts = xstrdup(optarg);
break;
+ case 's':
+ ++sloppy;
+ break;
case 128: /* bind */
mounttype = MS_BIND;
break;
diff --git a/utils/mount/nfs4mount.c b/utils/mount/nfs4mount.c
index 717ad56..4bc4ffc 100644
--- a/utils/mount/nfs4mount.c
+++ b/utils/mount/nfs4mount.c
@@ -50,6 +50,7 @@
#endif
extern int verbose;
+extern int sloppy;
char *IDMAPLCK = DEFAULT_DIR "/rpcidmapd";
#define idmapd_check() do { \
@@ -335,7 +336,7 @@ int nfs4mount(const char *spec, const char *node, int *flags,
nocto = !val;
else if (!strcmp(opt, "ac"))
noac = !val;
- else {
+ else if (!sloppy) {
printf(_("unknown nfs mount option: "
"%s%s\n"), val ? "" : "no", opt);
goto fail;
diff --git a/utils/mount/nfsmount.c b/utils/mount/nfsmount.c
index 507ccdb..d437036 100644
--- a/utils/mount/nfsmount.c
+++ b/utils/mount/nfsmount.c
@@ -104,6 +104,7 @@ typedef union {
static char errbuf[BUFSIZ];
static char *erreob = &errbuf[BUFSIZ];
extern int verbose;
+extern int sloppy;
/* Convert RPC errors into strings */
int rpc_strerror(int);
@@ -606,13 +607,13 @@ parse_options(char *old_opts, struct nfs_mount_data *data,
} else if (!strcmp(opt, "namlen")) {
if (nfs_mount_version >= 2)
data->namlen = val;
- else
+ else if (!sloppy)
goto bad_parameter;
#endif
} else if (!strcmp(opt, "addr")) {
/* ignore */;
continue;
- } else
+ } else if (!sloppy)
goto bad_parameter;
sprintf(cbuf, "%s=%s,", opt, opteq+1);
} else if (opteq) {
@@ -629,7 +630,7 @@ parse_options(char *old_opts, struct nfs_mount_data *data,
mnt_pmap->pm_prot = IPPROTO_TCP;
data->flags |= NFS_MOUNT_TCP;
#endif
- } else
+ } else if (!sloppy)
goto bad_parameter;
#if NFS_MOUNT_VERSION >= 5
} else if (!strcmp(opt, "sec")) {
@@ -658,7 +659,7 @@ parse_options(char *old_opts, struct nfs_mount_data *data,
data->pseudoflavor = AUTH_GSS_SPKMI;
else if (!strcmp(secflavor, "spkm3p"))
data->pseudoflavor = AUTH_GSS_SPKMP;
- else {
+ else if (!sloppy) {
printf(_("Warning: Unrecognized security flavor %s.\n"),
secflavor);
goto bad_parameter;
@@ -677,7 +678,7 @@ parse_options(char *old_opts, struct nfs_mount_data *data,
goto bad_parameter;
}
strncpy(data->context, context, NFS_MAX_CONTEXT_LEN);
- } else
+ } else if (!sloppy)
goto bad_parameter;
sprintf(cbuf, "%s=%s,", opt, opteq+1);
} else {
@@ -764,9 +765,11 @@ parse_options(char *old_opts, struct nfs_mount_data *data,
#endif
} else {
bad_option:
- printf(_("Unsupported nfs mount option: "
- "%s%s\n"), val ? "" : "no", opt);
- goto out_bad;
+ if (!sloppy) {
+ printf(_("Unsupported nfs mount option: "
+ "%s%s\n"), val ? "" : "no", opt);
+ goto out_bad;
+ }
}
sprintf(cbuf, val ? "%s,":"no%s,", opt);
}
[-- Attachment #3: Type: text/plain, Size: 345 bytes --]
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
[-- Attachment #4: Type: text/plain, Size: 140 bytes --]
_______________________________________________
NFS maillist - NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2007-02-26 11:15 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-26 11:17 [PATCH 03/11] nfs-utils: mount: mount -s (sloppy) option Steve Dickson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox