summaryrefslogtreecommitdiffstats
path: root/sys/nfsclient/nfs_vfsops.c
diff options
context:
space:
mode:
authortegge <tegge@FreeBSD.org>1997-05-12 19:02:56 +0000
committertegge <tegge@FreeBSD.org>1997-05-12 19:02:56 +0000
commit642b91a41a9edbfff185a5f1f100816f7dc5f7d9 (patch)
tree06d6e3aa9e68d7317bf8a6fd79dd02f6f359f939 /sys/nfsclient/nfs_vfsops.c
parent901bd8b71be860fedc8429d292230c219d27103f (diff)
downloadFreeBSD-src-642b91a41a9edbfff185a5f1f100816f7dc5f7d9.zip
FreeBSD-src-642b91a41a9edbfff185a5f1f100816f7dc5f7d9.tar.gz
Use the old nfs arguments in the nfs_diskless structure, to be
compatible with boot proms made from the 2.2 source. Convert the nfs arguments when copying to the new diskless structure. Copy the gateway field in the diskless structure.
Diffstat (limited to 'sys/nfsclient/nfs_vfsops.c')
-rw-r--r--sys/nfsclient/nfs_vfsops.c80
1 files changed, 32 insertions, 48 deletions
diff --git a/sys/nfsclient/nfs_vfsops.c b/sys/nfsclient/nfs_vfsops.c
index a6a9d5a..207b129 100644
--- a/sys/nfsclient/nfs_vfsops.c
+++ b/sys/nfsclient/nfs_vfsops.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfs_vfsops.c 8.12 (Berkeley) 5/20/95
- * $Id: nfs_vfsops.c,v 1.40 1997/05/04 15:04:49 phk Exp $
+ * $Id: nfs_vfsops.c,v 1.41 1997/05/11 18:05:38 tegge Exp $
*/
#include <sys/param.h>
@@ -158,6 +158,8 @@ static int nfs_mountdiskless __P((char *, char *, int,
struct proc *, struct vnode **,
struct mount **));
void nfs_convert_diskless __P((void));
+static void nfs_convert_oargs __P((struct nfs_args *args,
+ struct onfs_args *oargs));
static int nfs_iosize(nmp)
struct nfsmount* nmp;
@@ -175,12 +177,37 @@ static int nfs_iosize(nmp)
return iosize;
}
+static void nfs_convert_oargs(args,oargs)
+ struct nfs_args *args;
+ struct onfs_args *oargs;
+{
+ args->version = NFS_ARGSVERSION;
+ args->addr = oargs->addr;
+ args->addrlen = oargs->addrlen;
+ args->sotype = oargs->sotype;
+ args->proto = oargs->proto;
+ args->fh = oargs->fh;
+ args->fhsize = oargs->fhsize;
+ args->flags = oargs->flags;
+ args->wsize = oargs->wsize;
+ args->rsize = oargs->rsize;
+ args->readdirsize = oargs->readdirsize;
+ args->timeo = oargs->timeo;
+ args->retrans = oargs->retrans;
+ args->maxgrouplist = oargs->maxgrouplist;
+ args->readahead = oargs->readahead;
+ args->leaseterm = oargs->leaseterm;
+ args->deadthresh = oargs->deadthresh;
+ args->hostname = oargs->hostname;
+}
+
void nfs_convert_diskless()
{
bcopy(&nfs_diskless.myif, &nfsv3_diskless.myif,
sizeof(struct ifaliasreq));
- bcopy(&nfs_diskless.swap_args,&nfsv3_diskless.swap_args,
- sizeof(struct nfs_args));
+ bcopy(&nfs_diskless.mygateway, &nfsv3_diskless.mygateway,
+ sizeof(struct sockaddr_in));
+ nfs_convert_oargs(&nfsv3_diskless.swap_args,&nfs_diskless.swap_args);
nfsv3_diskless.swap_fhsize = NFSX_V2FH;
bcopy(nfs_diskless.swap_fh,nfsv3_diskless.swap_fh,NFSX_V2FH);
bcopy(&nfs_diskless.swap_saddr,&nfsv3_diskless.swap_saddr,
@@ -190,8 +217,7 @@ void nfs_convert_diskless()
nfsv3_diskless.swap_nblks = nfs_diskless.swap_nblks;
bcopy(&nfs_diskless.swap_ucred, &nfsv3_diskless.swap_ucred,
sizeof(struct ucred));
- bcopy(&nfs_diskless.root_args,&nfsv3_diskless.root_args,
- sizeof(struct nfs_args));
+ nfs_convert_oargs(&nfsv3_diskless.root_args,&nfs_diskless.root_args);
nfsv3_diskless.root_fhsize = NFSX_V2FH;
bcopy(nfs_diskless.root_fh,nfsv3_diskless.root_fh,NFSX_V2FH);
bcopy(&nfs_diskless.root_saddr,&nfsv3_diskless.root_saddr,
@@ -554,31 +580,6 @@ nfs_mountdiskless(path, which, mountflag, sin, args, p, vpp, mpp)
return (0);
}
-#ifndef NO_COMPAT_PRELITE2
-/*
- * Old arguments to mount NFS
- */
-struct onfs_args {
- struct sockaddr *addr; /* file server address */
- int addrlen; /* length of address */
- int sotype; /* Socket type */
- int proto; /* and Protocol */
- u_char *fh; /* File handle to be mounted */
- int fhsize; /* Size, in bytes, of fh */
- int flags; /* flags */
- int wsize; /* write size in bytes */
- int rsize; /* read size in bytes */
- int readdirsize; /* readdir size in bytes */
- int timeo; /* initial timeout in .1 secs */
- int retrans; /* times to retry send */
- int maxgrouplist; /* Max. size of group list */
- int readahead; /* # of blocks to readahead */
- int leaseterm; /* Term (sec) of lease */
- int deadthresh; /* Retrans threshold */
- char *hostname; /* server's name */
-};
-#endif /* !NO_COMPAT_PRELITE2 */
-
/*
* VFS Operations.
*
@@ -623,24 +624,7 @@ nfs_mount(mp, path, data, ndp, p)
error = copyin(data, (caddr_t)&oargs, sizeof (struct onfs_args));
if (error)
return (error);
- args.version = NFS_ARGSVERSION;
- args.addr = oargs.addr;
- args.addrlen = oargs.addrlen;
- args.sotype = oargs.sotype;
- args.proto = oargs.proto;
- args.fh = oargs.fh;
- args.fhsize = oargs.fhsize;
- args.flags = oargs.flags;
- args.wsize = oargs.wsize;
- args.rsize = oargs.rsize;
- args.readdirsize = oargs.readdirsize;
- args.timeo = oargs.timeo;
- args.retrans = oargs.retrans;
- args.maxgrouplist = oargs.maxgrouplist;
- args.readahead = oargs.readahead;
- args.leaseterm = oargs.leaseterm;
- args.deadthresh = oargs.deadthresh;
- args.hostname = oargs.hostname;
+ nfs_convert_oargs(&args,&oargs);
#else /* NO_COMPAT_PRELITE2 */
return (EPROGMISMATCH);
#endif /* !NO_COMPAT_PRELITE2 */
OpenPOWER on IntegriCloud