summaryrefslogtreecommitdiffstats
path: root/sys/nfsclient
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
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')
-rw-r--r--sys/nfsclient/nfs_vfsops.c80
-rw-r--r--sys/nfsclient/nfsdiskless.h29
2 files changed, 58 insertions, 51 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 */
diff --git a/sys/nfsclient/nfsdiskless.h b/sys/nfsclient/nfsdiskless.h
index 7f89173..2fcb0a0 100644
--- a/sys/nfsclient/nfsdiskless.h
+++ b/sys/nfsclient/nfsdiskless.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfsdiskless.h 8.2 (Berkeley) 3/30/95
- * $Id$
+ * $Id: nfsdiskless.h,v 1.8 1997/02/22 09:42:47 peter Exp $
*/
@@ -81,16 +81,39 @@ struct nfsv3_diskless {
char my_hostnam[MAXHOSTNAMELEN]; /* Client host name */
};
+/*
+ * 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 */
+};
+
struct nfs_diskless {
struct ifaliasreq myif; /* Default interface */
struct sockaddr_in mygateway; /* Default gateway */
- struct nfs_args swap_args; /* Mount args for swap file */
+ struct onfs_args swap_args; /* Mount args for swap file */
u_char swap_fh[NFSX_V2FH]; /* Swap file's file handle */
struct sockaddr_in swap_saddr; /* Address of swap server */
char swap_hostnam[MNAMELEN]; /* Host name for mount pt */
int swap_nblks; /* Size of server swap file */
struct ucred swap_ucred; /* Swap credentials */
- struct nfs_args root_args; /* Mount args for root fs */
+ struct onfs_args root_args; /* Mount args for root fs */
u_char root_fh[NFSX_V2FH]; /* File handle of root dir */
struct sockaddr_in root_saddr; /* Address of root server */
char root_hostnam[MNAMELEN]; /* Host name for mount pt */
OpenPOWER on IntegriCloud