Get rid of obsolete code in mount_nfs(8).
Reviewed by: rmacklem@ Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
f55cf4b0d1
commit
2795d7de01
@ -130,7 +130,6 @@ enum tryret {
|
|||||||
TRYRET_LOCALERR /* Local failure. */
|
TRYRET_LOCALERR /* Local failure. */
|
||||||
};
|
};
|
||||||
|
|
||||||
static int fallback_mount(struct iovec *iov, int iovlen);
|
|
||||||
static int sec_name_to_num(char *sec);
|
static int sec_name_to_num(char *sec);
|
||||||
static char *sec_num_to_name(int num);
|
static char *sec_num_to_name(int num);
|
||||||
static int getnfsargs(char *, struct iovec **iov, int *iovlen);
|
static int getnfsargs(char *, struct iovec **iov, int *iovlen);
|
||||||
@ -150,7 +149,6 @@ main(int argc, char *argv[])
|
|||||||
int c;
|
int c;
|
||||||
struct iovec *iov;
|
struct iovec *iov;
|
||||||
int num, iovlen;
|
int num, iovlen;
|
||||||
int osversion;
|
|
||||||
char *name, *p, *spec, *fstype;
|
char *name, *p, *spec, *fstype;
|
||||||
char mntpath[MAXPATHLEN], errmsg[255];
|
char mntpath[MAXPATHLEN], errmsg[255];
|
||||||
char hostname[MAXHOSTNAMELEN + 1], *gssname, gssn[MAXHOSTNAMELEN + 50];
|
char hostname[MAXHOSTNAMELEN + 1], *gssname, gssn[MAXHOSTNAMELEN + 50];
|
||||||
@ -443,21 +441,8 @@ main(int argc, char *argv[])
|
|||||||
build_iovec(&iov, &iovlen, "fspath", mntpath, (size_t)-1);
|
build_iovec(&iov, &iovlen, "fspath", mntpath, (size_t)-1);
|
||||||
build_iovec(&iov, &iovlen, "errmsg", errmsg, sizeof(errmsg));
|
build_iovec(&iov, &iovlen, "errmsg", errmsg, sizeof(errmsg));
|
||||||
|
|
||||||
/*
|
if (nmount(iov, iovlen, 0))
|
||||||
* XXX:
|
err(1, "%s, %s", mntpath, errmsg);
|
||||||
* Backwards compatibility routines for older kernels.
|
|
||||||
* Remove this and fallback_mount() code when we do not need to support
|
|
||||||
* NFS mounts against older kernels which still need
|
|
||||||
* struct nfs_args to be passed in via nmount().
|
|
||||||
*/
|
|
||||||
osversion = getosreldate();
|
|
||||||
if (osversion >= 702100) {
|
|
||||||
if (nmount(iov, iovlen, 0))
|
|
||||||
err(1, "%s, %s", mntpath, errmsg);
|
|
||||||
} else {
|
|
||||||
if (fallback_mount(iov, iovlen))
|
|
||||||
err(1, "%s, %s", mntpath, errmsg);
|
|
||||||
}
|
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
@ -491,206 +476,6 @@ copyopt(struct iovec **newiov, int *newiovlen,
|
|||||||
build_iovec(newiov, newiovlen, name, value, len);
|
build_iovec(newiov, newiovlen, name, value, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* XXX: This function is provided for backwards
|
|
||||||
* compatibility with older kernels which did not support
|
|
||||||
* passing NFS mount options to nmount() as individual
|
|
||||||
* parameters. It should be eventually be removed.
|
|
||||||
*/
|
|
||||||
static int
|
|
||||||
fallback_mount(struct iovec *iov, int iovlen)
|
|
||||||
{
|
|
||||||
struct nfs_args args = {
|
|
||||||
.version = NFS_ARGSVERSION,
|
|
||||||
.addr = NULL,
|
|
||||||
.addrlen = sizeof (struct sockaddr_in),
|
|
||||||
.sotype = SOCK_STREAM,
|
|
||||||
.proto = 0,
|
|
||||||
.fh = NULL,
|
|
||||||
.fhsize = 0,
|
|
||||||
.flags = NFSMNT_RESVPORT,
|
|
||||||
.wsize = NFS_WSIZE,
|
|
||||||
.rsize = NFS_RSIZE,
|
|
||||||
.readdirsize = NFS_READDIRSIZE,
|
|
||||||
.timeo = 10,
|
|
||||||
.retrans = NFS_RETRANS,
|
|
||||||
.maxgrouplist = NFS_MAXGRPS,
|
|
||||||
.readahead = NFS_DEFRAHEAD,
|
|
||||||
.wcommitsize = 0, /* was: NQ_DEFLEASE */
|
|
||||||
.deadthresh = NFS_MAXDEADTHRESH, /* was: NQ_DEADTHRESH */
|
|
||||||
.hostname = NULL,
|
|
||||||
/* args version 4 */
|
|
||||||
.acregmin = NFS_MINATTRTIMO,
|
|
||||||
.acregmax = NFS_MAXATTRTIMO,
|
|
||||||
.acdirmin = NFS_MINDIRATTRTIMO,
|
|
||||||
.acdirmax = NFS_MAXDIRATTRTIMO,
|
|
||||||
};
|
|
||||||
int ret;
|
|
||||||
char *opt;
|
|
||||||
struct iovec *newiov;
|
|
||||||
int newiovlen;
|
|
||||||
|
|
||||||
if (findopt(iov, iovlen, "dumbtimer", NULL, NULL) == 0)
|
|
||||||
args.flags |= NFSMNT_DUMBTIMR;
|
|
||||||
if (findopt(iov, iovlen, "noconn", NULL, NULL) == 0)
|
|
||||||
args.flags |= NFSMNT_NOCONN;
|
|
||||||
if (findopt(iov, iovlen, "conn", NULL, NULL) == 0)
|
|
||||||
args.flags |= NFSMNT_NOCONN;
|
|
||||||
if (findopt(iov, iovlen, "nolockd", NULL, NULL) == 0)
|
|
||||||
args.flags |= NFSMNT_NOLOCKD;
|
|
||||||
if (findopt(iov, iovlen, "lockd", NULL, NULL) == 0)
|
|
||||||
args.flags &= ~NFSMNT_NOLOCKD;
|
|
||||||
if (findopt(iov, iovlen, "intr", NULL, NULL) == 0)
|
|
||||||
args.flags |= NFSMNT_INT;
|
|
||||||
if (findopt(iov, iovlen, "rdirplus", NULL, NULL) == 0)
|
|
||||||
args.flags |= NFSMNT_RDIRPLUS;
|
|
||||||
if (findopt(iov, iovlen, "resvport", NULL, NULL) == 0)
|
|
||||||
args.flags |= NFSMNT_RESVPORT;
|
|
||||||
if (findopt(iov, iovlen, "noresvport", NULL, NULL) == 0)
|
|
||||||
args.flags &= ~NFSMNT_RESVPORT;
|
|
||||||
if (findopt(iov, iovlen, "soft", NULL, NULL) == 0)
|
|
||||||
args.flags |= NFSMNT_SOFT;
|
|
||||||
if (findopt(iov, iovlen, "hard", NULL, NULL) == 0)
|
|
||||||
args.flags &= ~NFSMNT_SOFT;
|
|
||||||
if (findopt(iov, iovlen, "mntudp", NULL, NULL) == 0)
|
|
||||||
args.sotype = SOCK_DGRAM;
|
|
||||||
if (findopt(iov, iovlen, "udp", NULL, NULL) == 0)
|
|
||||||
args.sotype = SOCK_DGRAM;
|
|
||||||
if (findopt(iov, iovlen, "tcp", NULL, NULL) == 0)
|
|
||||||
args.sotype = SOCK_STREAM;
|
|
||||||
if (findopt(iov, iovlen, "nfsv3", NULL, NULL) == 0)
|
|
||||||
args.flags |= NFSMNT_NFSV3;
|
|
||||||
if (findopt(iov, iovlen, "readdirsize", &opt, NULL) == 0) {
|
|
||||||
if (opt == NULL) {
|
|
||||||
errx(1, "illegal readdirsize");
|
|
||||||
}
|
|
||||||
ret = sscanf(opt, "%d", &args.readdirsize);
|
|
||||||
if (ret != 1 || args.readdirsize <= 0) {
|
|
||||||
errx(1, "illegal readdirsize: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_READDIRSIZE;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "readahead", &opt, NULL) == 0) {
|
|
||||||
if (opt == NULL) {
|
|
||||||
errx(1, "illegal readahead");
|
|
||||||
}
|
|
||||||
ret = sscanf(opt, "%d", &args.readahead);
|
|
||||||
if (ret != 1 || args.readahead <= 0) {
|
|
||||||
errx(1, "illegal readahead: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_READAHEAD;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "wsize", &opt, NULL) == 0) {
|
|
||||||
if (opt == NULL) {
|
|
||||||
errx(1, "illegal wsize");
|
|
||||||
}
|
|
||||||
ret = sscanf(opt, "%d", &args.wsize);
|
|
||||||
if (ret != 1 || args.wsize <= 0) {
|
|
||||||
errx(1, "illegal wsize: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_WSIZE;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "rsize", &opt, NULL) == 0) {
|
|
||||||
if (opt == NULL) {
|
|
||||||
errx(1, "illegal rsize");
|
|
||||||
}
|
|
||||||
ret = sscanf(opt, "%d", &args.rsize);
|
|
||||||
if (ret != 1 || args.rsize <= 0) {
|
|
||||||
errx(1, "illegal wsize: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_RSIZE;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "retrans", &opt, NULL) == 0) {
|
|
||||||
if (opt == NULL) {
|
|
||||||
errx(1, "illegal retrans");
|
|
||||||
}
|
|
||||||
ret = sscanf(opt, "%d", &args.retrans);
|
|
||||||
if (ret != 1 || args.retrans <= 0) {
|
|
||||||
errx(1, "illegal retrans: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_RETRANS;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "acregmin", &opt, NULL) == 0) {
|
|
||||||
ret = sscanf(opt, "%d", &args.acregmin);
|
|
||||||
if (ret != 1 || args.acregmin < 0) {
|
|
||||||
errx(1, "illegal acregmin: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_ACREGMIN;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "acregmax", &opt, NULL) == 0) {
|
|
||||||
ret = sscanf(opt, "%d", &args.acregmax);
|
|
||||||
if (ret != 1 || args.acregmax < 0) {
|
|
||||||
errx(1, "illegal acregmax: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_ACREGMAX;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "acdirmin", &opt, NULL) == 0) {
|
|
||||||
ret = sscanf(opt, "%d", &args.acdirmin);
|
|
||||||
if (ret != 1 || args.acdirmin < 0) {
|
|
||||||
errx(1, "illegal acdirmin: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_ACDIRMIN;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "acdirmax", &opt, NULL) == 0) {
|
|
||||||
ret = sscanf(opt, "%d", &args.acdirmax);
|
|
||||||
if (ret != 1 || args.acdirmax < 0) {
|
|
||||||
errx(1, "illegal acdirmax: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_ACDIRMAX;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "wcommitsize", &opt, NULL) == 0) {
|
|
||||||
ret = sscanf(opt, "%d", &args.wcommitsize);
|
|
||||||
if (ret != 1 || args.wcommitsize < 0) {
|
|
||||||
errx(1, "illegal wcommitsize: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_WCOMMITSIZE;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "deadthresh", &opt, NULL) == 0) {
|
|
||||||
ret = sscanf(opt, "%d", &args.deadthresh);
|
|
||||||
if (ret != 1 || args.deadthresh <= 0) {
|
|
||||||
errx(1, "illegal deadthresh: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_DEADTHRESH;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "timeout", &opt, NULL) == 0) {
|
|
||||||
ret = sscanf(opt, "%d", &args.timeo);
|
|
||||||
if (ret != 1 || args.timeo <= 0) {
|
|
||||||
errx(1, "illegal timeout: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_TIMEO;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "maxgroups", &opt, NULL) == 0) {
|
|
||||||
ret = sscanf(opt, "%d", &args.maxgrouplist);
|
|
||||||
if (ret != 1 || args.timeo <= 0) {
|
|
||||||
errx(1, "illegal maxgroups: %s", opt);
|
|
||||||
}
|
|
||||||
args.flags |= NFSMNT_MAXGRPS;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "addr", &opt,
|
|
||||||
&args.addrlen) == 0) {
|
|
||||||
args.addr = (struct sockaddr *) opt;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "fh", &opt, &args.fhsize) == 0) {
|
|
||||||
args.fh = opt;
|
|
||||||
}
|
|
||||||
if (findopt(iov, iovlen, "hostname", &args.hostname,
|
|
||||||
NULL) == 0) {
|
|
||||||
}
|
|
||||||
if (args.hostname == NULL) {
|
|
||||||
errx(1, "Invalid hostname");
|
|
||||||
}
|
|
||||||
|
|
||||||
newiov = NULL;
|
|
||||||
newiovlen = 0;
|
|
||||||
|
|
||||||
build_iovec(&newiov, &newiovlen, "nfs_args", &args, sizeof(args));
|
|
||||||
copyopt(&newiov, &newiovlen, iov, iovlen, "fstype");
|
|
||||||
copyopt(&newiov, &newiovlen, iov, iovlen, "fspath");
|
|
||||||
copyopt(&newiov, &newiovlen, iov, iovlen, "errmsg");
|
|
||||||
|
|
||||||
return nmount(newiov, newiovlen, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
sec_name_to_num(char *sec)
|
sec_name_to_num(char *sec)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user