summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorwollman <wollman@FreeBSD.org>1997-08-16 19:16:27 +0000
committerwollman <wollman@FreeBSD.org>1997-08-16 19:16:27 +0000
commit4542c1cf5d7077caf33d6d9468f5e647cd9d19e5 (patch)
tree69fd093ef1e8c080592999507b664fe6315c0e10 /sys/fs
parentf4edc7fc6748272644fb845fc8636a5c261247d6 (diff)
downloadFreeBSD-src-4542c1cf5d7077caf33d6d9468f5e647cd9d19e5.zip
FreeBSD-src-4542c1cf5d7077caf33d6d9468f5e647cd9d19e5.tar.gz
Fix all areas of the system (or at least all those in LINT) to avoid storing
socket addresses in mbufs. (Socket buffers are the one exception.) A number of kernel APIs needed to get fixed in order to make this happen. Also, fix three protocol families which kept PCBs in mbufs to not malloc them instead. Delete some old compatibility cruft while we're at it, and add some new routines in the in_cksum family.
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/cd9660/cd9660_vfsops.c6
-rw-r--r--sys/fs/fdescfs/fdesc_vfsops.c4
-rw-r--r--sys/fs/fifofs/fifo_vnops.c7
-rw-r--r--sys/fs/msdosfs/msdosfs_vfsops.c6
-rw-r--r--sys/fs/nullfs/null_vfsops.c9
-rw-r--r--sys/fs/portalfs/portal_vfsops.c4
-rw-r--r--sys/fs/portalfs/portal_vnops.c13
-rw-r--r--sys/fs/procfs/procfs_vfsops.c4
-rw-r--r--sys/fs/umapfs/umap_vfsops.c6
-rw-r--r--sys/fs/unionfs/union_vfsops.c4
10 files changed, 32 insertions, 31 deletions
diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c
index cf09054..a0cea9d 100644
--- a/sys/fs/cd9660/cd9660_vfsops.c
+++ b/sys/fs/cd9660/cd9660_vfsops.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)cd9660_vfsops.c 8.18 (Berkeley) 5/22/95
- * $Id: cd9660_vfsops.c,v 1.25 1997/05/04 15:24:21 joerg Exp $
+ * $Id: cd9660_vfsops.c,v 1.26 1997/08/02 14:31:20 bde Exp $
*/
#include <sys/param.h>
@@ -71,7 +71,7 @@ static int cd9660_statfs __P((struct mount *, struct statfs *, struct proc *));
static int cd9660_sync __P((struct mount *, int, struct ucred *,
struct proc *));
static int cd9660_vget __P((struct mount *, ino_t, struct vnode **));
-static int cd9660_fhtovp __P((struct mount *, struct fid *, struct mbuf *,
+static int cd9660_fhtovp __P((struct mount *, struct fid *, struct sockaddr *,
struct vnode **, int *, struct ucred **));
static int cd9660_vptofh __P((struct vnode *, struct fid *));
@@ -590,7 +590,7 @@ int
cd9660_fhtovp(mp, fhp, nam, vpp, exflagsp, credanonp)
register struct mount *mp;
struct fid *fhp;
- struct mbuf *nam;
+ struct sockaddr *nam;
struct vnode **vpp;
int *exflagsp;
struct ucred **credanonp;
diff --git a/sys/fs/fdescfs/fdesc_vfsops.c b/sys/fs/fdescfs/fdesc_vfsops.c
index ea668c9..e80c69d 100644
--- a/sys/fs/fdescfs/fdesc_vfsops.c
+++ b/sys/fs/fdescfs/fdesc_vfsops.c
@@ -35,7 +35,7 @@
*
* @(#)fdesc_vfsops.c 8.4 (Berkeley) 1/21/94
*
- * $Id: fdesc_vfsops.c,v 1.10 1997/02/22 09:40:15 peter Exp $
+ * $Id: fdesc_vfsops.c,v 1.11 1997/08/02 14:31:59 bde Exp $
*/
/*
@@ -244,7 +244,7 @@ fdesc_sync(mp, waitfor, cred, p)
}
#define fdesc_fhtovp ((int (*) __P((struct mount *, struct fid *, \
- struct mbuf *, struct vnode **, int *, struct ucred **)))eopnotsupp)
+ struct sockaddr *, struct vnode **, int *, struct ucred **)))eopnotsupp)
#define fdesc_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
struct proc *)))eopnotsupp)
#define fdesc_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
diff --git a/sys/fs/fifofs/fifo_vnops.c b/sys/fs/fifofs/fifo_vnops.c
index 1cdc3d7..ce23c6e 100644
--- a/sys/fs/fifofs/fifo_vnops.c
+++ b/sys/fs/fifofs/fifo_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95
- * $Id: fifo_vnops.c,v 1.23 1997/03/23 03:36:49 bde Exp $
+ * $Id: fifo_vnops.c,v 1.24 1997/03/24 11:37:53 bde Exp $
*/
#include <sys/param.h>
@@ -264,7 +264,7 @@ fifo_read(ap)
rso->so_state |= SS_NBIO;
startresid = uio->uio_resid;
VOP_UNLOCK(ap->a_vp, 0, p);
- error = soreceive(rso, (struct mbuf **)0, uio, (struct mbuf **)0,
+ error = soreceive(rso, (struct sockaddr **)0, uio, (struct mbuf **)0,
(struct mbuf **)0, (int *)0);
vn_lock(ap->a_vp, LK_EXCLUSIVE | LK_RETRY, p);
/*
@@ -301,7 +301,8 @@ fifo_write(ap)
if (ap->a_ioflag & IO_NDELAY)
wso->so_state |= SS_NBIO;
VOP_UNLOCK(ap->a_vp, 0, p);
- error = sosend(wso, (struct mbuf *)0, ap->a_uio, 0, (struct mbuf *)0, 0);
+ error = sosend(wso, (struct sockaddr *)0, ap->a_uio, 0,
+ (struct mbuf *)0, 0, p);
vn_lock(ap->a_vp, LK_EXCLUSIVE | LK_RETRY, p);
if (ap->a_ioflag & IO_NDELAY)
wso->so_state &= ~SS_NBIO;
diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c
index 896c4f0..755c0b1 100644
--- a/sys/fs/msdosfs/msdosfs_vfsops.c
+++ b/sys/fs/msdosfs/msdosfs_vfsops.c
@@ -1,4 +1,4 @@
-/* $Id: msdosfs_vfsops.c,v 1.18 1997/03/18 19:50:10 peter Exp $ */
+/* $Id: msdosfs_vfsops.c,v 1.19 1997/03/23 03:37:06 bde Exp $ */
/* $NetBSD: msdosfs_vfsops.c,v 1.19 1994/08/21 18:44:10 ws Exp $ */
/*-
@@ -70,7 +70,7 @@
static int mountmsdosfs __P((struct vnode *devvp, struct mount *mp,
struct proc *p));
static int msdosfs_fhtovp __P((struct mount *, struct fid *,
- struct mbuf *, struct vnode **, int *,
+ struct sockaddr *, struct vnode **, int *,
struct ucred **));
static int msdosfs_mount __P((struct mount *, char *, caddr_t,
struct nameidata *, struct proc *));
@@ -732,7 +732,7 @@ static int
msdosfs_fhtovp(mp, fhp, nam, vpp, exflagsp, credanonp)
struct mount *mp;
struct fid *fhp;
- struct mbuf *nam;
+ struct sockaddr *nam;
struct vnode **vpp;
int *exflagsp;
struct ucred **credanonp;
diff --git a/sys/fs/nullfs/null_vfsops.c b/sys/fs/nullfs/null_vfsops.c
index 40e2a19..ea5711f 100644
--- a/sys/fs/nullfs/null_vfsops.c
+++ b/sys/fs/nullfs/null_vfsops.c
@@ -36,7 +36,7 @@
* @(#)null_vfsops.c 8.2 (Berkeley) 1/21/94
*
* @(#)lofs_vfsops.c 1.2 (Berkeley) 6/18/92
- * $Id: null_vfsops.c,v 1.17 1997/04/19 06:03:30 kato Exp $
+ * $Id: null_vfsops.c,v 1.18 1997/08/02 14:32:05 bde Exp $
*/
/*
@@ -55,7 +55,7 @@
#include <miscfs/nullfs/null.h>
static int nullfs_fhtovp __P((struct mount *mp, struct fid *fidp,
- struct mbuf *nam, struct vnode **vpp,
+ struct sockaddr *nam, struct vnode **vpp,
int *exflagsp, struct ucred **credanonp));
static int nullfs_mount __P((struct mount *mp, char *path, caddr_t data,
struct nameidata *ndp, struct proc *p));
@@ -387,13 +387,14 @@ static int
nullfs_fhtovp(mp, fidp, nam, vpp, exflagsp, credanonp)
struct mount *mp;
struct fid *fidp;
- struct mbuf *nam;
+ struct sockaddr *nam;
struct vnode **vpp;
int *exflagsp;
struct ucred**credanonp;
{
- return VFS_FHTOVP(MOUNTTONULLMOUNT(mp)->nullm_vfs, fidp, nam, vpp, exflagsp,credanonp);
+ return VFS_FHTOVP(MOUNTTONULLMOUNT(mp)->nullm_vfs, fidp, nam,
+ vpp, exflagsp, credanonp);
}
static int
diff --git a/sys/fs/portalfs/portal_vfsops.c b/sys/fs/portalfs/portal_vfsops.c
index 7ab3be6..c70e73e 100644
--- a/sys/fs/portalfs/portal_vfsops.c
+++ b/sys/fs/portalfs/portal_vfsops.c
@@ -35,7 +35,7 @@
*
* @(#)portal_vfsops.c 8.11 (Berkeley) 5/14/95
*
- * $Id: portal_vfsops.c,v 1.15 1997/02/22 09:40:24 peter Exp $
+ * $Id: portal_vfsops.c,v 1.16 1997/08/02 14:32:07 bde Exp $
*/
/*
@@ -261,7 +261,7 @@ portal_statfs(mp, sbp, p)
}
#define portal_fhtovp ((int (*) __P((struct mount *, struct fid *, \
- struct mbuf *, struct vnode **, int *, struct ucred **)))eopnotsupp)
+ struct sockaddr *, struct vnode **, int *, struct ucred **)))eopnotsupp)
#define portal_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
struct proc *)))eopnotsupp)
#define portal_sync ((int (*) __P((struct mount *, int, struct ucred *, \
diff --git a/sys/fs/portalfs/portal_vnops.c b/sys/fs/portalfs/portal_vnops.c
index edd4217..281d563 100644
--- a/sys/fs/portalfs/portal_vnops.c
+++ b/sys/fs/portalfs/portal_vnops.c
@@ -35,7 +35,7 @@
*
* @(#)portal_vnops.c 8.14 (Berkeley) 5/21/95
*
- * $Id: portal_vnops.c,v 1.18 1997/03/23 03:36:54 bde Exp $
+ * $Id: portal_vnops.c,v 1.19 1997/08/02 14:32:08 bde Exp $
*/
/*
@@ -197,11 +197,10 @@ portal_connect(so, so2)
unp2 = sotounpcb(so2);
unp3 = sotounpcb(so3);
if (unp2->unp_addr)
- unp3->unp_addr = m_copy(unp2->unp_addr, 0, (int)M_COPYALL);
-
+ unp3->unp_addr = (struct sockaddr_un *)
+ dup_sockaddr((struct sockaddr *)unp2->unp_addr, 0);
so2 = so3;
-
return (unp_connect2(so, so2));
}
@@ -326,8 +325,8 @@ portal_open(ap)
auio.uio_offset = 0;
auio.uio_resid = aiov[0].iov_len + aiov[1].iov_len;
- error = sosend(so, (struct mbuf *) 0, &auio,
- (struct mbuf *) 0, (struct mbuf *) 0, 0);
+ error = sosend(so, (struct sockaddr *) 0, &auio,
+ (struct mbuf *) 0, (struct mbuf *) 0, 0, p);
if (error)
goto bad;
@@ -335,7 +334,7 @@ portal_open(ap)
do {
struct mbuf *m = 0;
int flags = MSG_WAITALL;
- error = soreceive(so, (struct mbuf **) 0, &auio,
+ error = soreceive(so, (struct sockaddr **) 0, &auio,
&m, &cm, &flags);
if (error)
goto bad;
diff --git a/sys/fs/procfs/procfs_vfsops.c b/sys/fs/procfs/procfs_vfsops.c
index a6ebbae..3afd9e9 100644
--- a/sys/fs/procfs/procfs_vfsops.c
+++ b/sys/fs/procfs/procfs_vfsops.c
@@ -36,7 +36,7 @@
*
* @(#)procfs_vfsops.c 8.7 (Berkeley) 5/10/95
*
- * $Id: procfs_vfsops.c,v 1.15 1997/02/22 09:40:31 peter Exp $
+ * $Id: procfs_vfsops.c,v 1.16 1997/08/02 14:32:19 bde Exp $
*/
/*
@@ -177,7 +177,7 @@ procfs_init(vfsp)
}
#define procfs_fhtovp ((int (*) __P((struct mount *, struct fid *, \
- struct mbuf *, struct vnode **, int *, struct ucred **)))einval)
+ struct sockaddr *, struct vnode **, int *, struct ucred **)))einval)
#define procfs_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
struct proc *)))eopnotsupp)
#define procfs_sync ((int (*) __P((struct mount *, int, struct ucred *, \
diff --git a/sys/fs/umapfs/umap_vfsops.c b/sys/fs/umapfs/umap_vfsops.c
index 3a73bd6..20c0c4c 100644
--- a/sys/fs/umapfs/umap_vfsops.c
+++ b/sys/fs/umapfs/umap_vfsops.c
@@ -35,7 +35,7 @@
*
* @(#)umap_vfsops.c 8.8 (Berkeley) 5/14/95
*
- * $Id: umap_vfsops.c,v 1.14 1997/02/22 09:40:38 peter Exp $
+ * $Id: umap_vfsops.c,v 1.15 1997/08/02 14:32:25 bde Exp $
*/
/*
@@ -54,7 +54,7 @@
#include <miscfs/umapfs/umap.h>
static int umapfs_fhtovp __P((struct mount *mp, struct fid *fidp,
- struct mbuf *nam, struct vnode **vpp,
+ struct sockaddr *nam, struct vnode **vpp,
int *exflagsp, struct ucred **credanonp));
static int umapfs_mount __P((struct mount *mp, char *path, caddr_t data,
struct nameidata *ndp, struct proc *p));
@@ -391,7 +391,7 @@ static int
umapfs_fhtovp(mp, fidp, nam, vpp, exflagsp, credanonp)
struct mount *mp;
struct fid *fidp;
- struct mbuf *nam;
+ struct sockaddr *nam;
struct vnode **vpp;
int *exflagsp;
struct ucred**credanonp;
diff --git a/sys/fs/unionfs/union_vfsops.c b/sys/fs/unionfs/union_vfsops.c
index 82edf91..e7954be 100644
--- a/sys/fs/unionfs/union_vfsops.c
+++ b/sys/fs/unionfs/union_vfsops.c
@@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* @(#)union_vfsops.c 8.20 (Berkeley) 5/20/95
- * $Id: union_vfsops.c,v 1.17 1997/05/07 14:37:31 kato Exp $
+ * $Id: union_vfsops.c,v 1.18 1997/08/02 14:32:29 bde Exp $
*/
/*
@@ -531,7 +531,7 @@ union_statfs(mp, sbp, p)
struct proc *)))nullop)
#define union_fhtovp ((int (*) __P((struct mount *, struct fid *, \
- struct mbuf *, struct vnode **, int *, struct ucred **)))eopnotsupp)
+ struct sockaddr *, struct vnode **, int *, struct ucred **)))eopnotsupp)
#define union_quotactl ((int (*) __P((struct mount *, int, uid_t, caddr_t, \
struct proc *)))eopnotsupp)
#define union_sysctl ((int (*) __P((int *, u_int, void *, size_t *, void *, \
OpenPOWER on IntegriCloud