summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2003-01-13 00:33:17 +0000
committerdillon <dillon@FreeBSD.org>2003-01-13 00:33:17 +0000
commitccd5574cc6e61b8fbf6b5ed907375f42e19b54f8 (patch)
treeee3c8690226ac4a086122b794c975aab9319b671
parentfe540b81bb4ea3115544cd0f082b4ecd39cebb62 (diff)
downloadFreeBSD-src-ccd5574cc6e61b8fbf6b5ed907375f42e19b54f8.zip
FreeBSD-src-ccd5574cc6e61b8fbf6b5ed907375f42e19b54f8.tar.gz
Bow to the whining masses and change a union back into void *. Retain
removal of unnecessary casts and throw in some minor cleanups to see if anyone complains, just for the hell of it.
-rw-r--r--contrib/ipfilter/ipsend/sock.c6
-rw-r--r--sys/alpha/osf1/osf1_mount.c2
-rw-r--r--sys/compat/linux/linux_file.c2
-rw-r--r--sys/compat/linux/linux_stats.c2
-rw-r--r--sys/compat/svr4/svr4_fcntl.c2
-rw-r--r--sys/compat/svr4/svr4_filio.c2
-rw-r--r--sys/compat/svr4/svr4_ioctl.c4
-rw-r--r--sys/compat/svr4/svr4_misc.c6
-rw-r--r--sys/compat/svr4/svr4_socket.c2
-rw-r--r--sys/compat/svr4/svr4_stream.c2
-rw-r--r--sys/dev/streams/streams.c8
-rw-r--r--sys/fs/fdescfs/fdesc_vnops.c2
-rw-r--r--sys/fs/fifofs/fifo_vnops.c13
-rw-r--r--sys/fs/portalfs/portal_vfsops.c4
-rw-r--r--sys/fs/portalfs/portal_vnops.c2
-rw-r--r--sys/fs/unionfs/union_subr.c2
-rw-r--r--sys/i386/ibcs2/ibcs2_misc.c4
-rw-r--r--sys/i386/ibcs2/ibcs2_stat.c2
-rw-r--r--sys/kern/kern_acl.c11
-rw-r--r--sys/kern/kern_descrip.c34
-rw-r--r--sys/kern/kern_event.c20
-rw-r--r--sys/kern/kern_mac.c8
-rw-r--r--sys/kern/subr_acl_posix1e.c11
-rw-r--r--sys/kern/sys_pipe.c24
-rw-r--r--sys/kern/sys_socket.c14
-rw-r--r--sys/kern/uipc_socket.c12
-rw-r--r--sys/kern/uipc_syscalls.c8
-rw-r--r--sys/kern/uipc_usrreq.c6
-rw-r--r--sys/kern/vfs_acl.c11
-rw-r--r--sys/kern/vfs_aio.c12
-rw-r--r--sys/kern/vfs_extattr.c42
-rw-r--r--sys/kern/vfs_syscalls.c42
-rw-r--r--sys/kern/vfs_vnops.c14
-rw-r--r--sys/netgraph/ng_socket.c2
-rw-r--r--sys/netsmb/smb_dev.c2
-rw-r--r--sys/nfsserver/nfs_syscalls.c2
-rw-r--r--sys/opencrypto/cryptodev.c8
-rw-r--r--sys/security/mac/mac_framework.c8
-rw-r--r--sys/security/mac/mac_internal.h8
-rw-r--r--sys/security/mac/mac_net.c8
-rw-r--r--sys/security/mac/mac_pipe.c8
-rw-r--r--sys/security/mac/mac_process.c8
-rw-r--r--sys/security/mac/mac_syscalls.c8
-rw-r--r--sys/security/mac/mac_system.c8
-rw-r--r--sys/security/mac/mac_vfs.c8
-rw-r--r--sys/sys/file.h24
-rw-r--r--sys/ufs/ffs/ffs_alloc.c2
-rw-r--r--sys/vm/vm_mmap.c2
-rw-r--r--usr.bin/fstat/fstat.c8
-rw-r--r--usr.bin/sockstat/sockstat.c4
-rw-r--r--usr.sbin/pstat/pstat.c2
51 files changed, 213 insertions, 243 deletions
diff --git a/contrib/ipfilter/ipsend/sock.c b/contrib/ipfilter/ipsend/sock.c
index cb9dba8..519cedf 100644
--- a/contrib/ipfilter/ipsend/sock.c
+++ b/contrib/ipfilter/ipsend/sock.c
@@ -222,7 +222,7 @@ struct tcpiphdr *ti;
}
s = (struct socket *)calloc(1, sizeof(*s));
- if (KMCPY(s, f->un_data.socket, sizeof(*s)) == -1)
+ if (KMCPY(s, f->f_data, sizeof(*s)) == -1)
{
fprintf(stderr, "read(%#x,%#x,%d) - f_data - failed\n",
o[fd], s, sizeof(*s));
@@ -316,10 +316,10 @@ struct tcpiphdr *ti;
}
s = (struct socket *)calloc(1, sizeof(*s));
- if (KMCPY(s, f->un_data.socket, sizeof(*s)) == -1)
+ if (KMCPY(s, f->f_data, sizeof(*s)) == -1)
{
fprintf(stderr, "read(%#lx,%#lx,%lu) - f_data - failed\n",
- (u_long)f->un_data.socket, (u_long)s,
+ (u_long)f->f_data, (u_long)s,
(u_long)sizeof(*s));
return NULL;
}
diff --git a/sys/alpha/osf1/osf1_mount.c b/sys/alpha/osf1/osf1_mount.c
index 30143fc..9205f99 100644
--- a/sys/alpha/osf1/osf1_mount.c
+++ b/sys/alpha/osf1/osf1_mount.c
@@ -159,7 +159,7 @@ osf1_fstatfs(td, uap)
if ((error = getvnode(td->td_proc->p_fd, uap->fd, &fp)))
return (error);
- mp = (fp->un_data.vnode)->v_mount;
+ mp = ((struct vnode *)fp->f_data)->v_mount;
#ifdef MAC
error = mac_check_mount_stat(td->td_proc->p_ucred, mp);
if (error) {
diff --git a/sys/compat/linux/linux_file.c b/sys/compat/linux/linux_file.c
index 1058d49..2b37dcd 100644
--- a/sys/compat/linux/linux_file.c
+++ b/sys/compat/linux/linux_file.c
@@ -270,7 +270,7 @@ getdents_common(struct thread *td, struct linux_getdents64_args *args,
return (EBADF);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if (vp->v_type != VDIR) {
fdrop(fp, td);
return (EINVAL);
diff --git a/sys/compat/linux/linux_stats.c b/sys/compat/linux/linux_stats.c
index 712d914..d02186f 100644
--- a/sys/compat/linux/linux_stats.c
+++ b/sys/compat/linux/linux_stats.c
@@ -289,7 +289,7 @@ linux_fstatfs(struct thread *td, struct linux_fstatfs_args *args)
error = getvnode(td->td_proc->p_fd, args->fd, &fp);
if (error)
return error;
- mp = fp->un_data.vnode->v_mount;
+ mp = ((struct vnode *)fp->f_data)->v_mount;
#ifdef MAC
error = mac_check_mount_stat(td->td_proc->p_ucred, mp);
if (error) {
diff --git a/sys/compat/svr4/svr4_fcntl.c b/sys/compat/svr4/svr4_fcntl.c
index d41192b..8632b3c 100644
--- a/sys/compat/svr4/svr4_fcntl.c
+++ b/sys/compat/svr4/svr4_fcntl.c
@@ -311,7 +311,7 @@ fd_truncate(td, fd, flp)
if ((error = fget(td, fd, &fp)) != 0)
return (error);
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if (fp->f_type != DTYPE_VNODE || vp->v_type == VFIFO) {
fdrop(fp, td);
diff --git a/sys/compat/svr4/svr4_filio.c b/sys/compat/svr4/svr4_filio.c
index dbbdfdb..ca1b8db 100644
--- a/sys/compat/svr4/svr4_filio.c
+++ b/sys/compat/svr4/svr4_filio.c
@@ -115,7 +115,7 @@ svr4_sys_read(td, uap)
}
if (fp->f_type == DTYPE_SOCKET) {
- so = fp->un_data.socket;
+ so = fp->f_data;
DPRINTF(("fd %d is a socket\n", uap->fd));
if (so->so_state & SS_ASYNC) {
DPRINTF(("fd %d is an ASYNC socket!\n", uap->fd));
diff --git a/sys/compat/svr4/svr4_ioctl.c b/sys/compat/svr4/svr4_ioctl.c
index 51334bc..08ba009 100644
--- a/sys/compat/svr4/svr4_ioctl.c
+++ b/sys/compat/svr4/svr4_ioctl.c
@@ -112,7 +112,7 @@ svr4_sys_ioctl(td, uap)
#if defined(DEBUG_SVR4)
if (fp->f_type == DTYPE_SOCKET) {
- struct socket *so = fp->un_data.socket;
+ struct socket *so = fp->f_data;
DPRINTF(("<<< IN: so_state = 0x%x\n", so->so_state));
}
#endif
@@ -157,7 +157,7 @@ svr4_sys_ioctl(td, uap)
if (fp->f_type == DTYPE_SOCKET) {
struct socket *so;
- so = fp->un_data.socket;
+ so = fp->f_data;
DPRINTF((">>> OUT: so_state = 0x%x\n", so->so_state));
}
#endif
diff --git a/sys/compat/svr4/svr4_misc.c b/sys/compat/svr4/svr4_misc.c
index 9f9d7e5..16f7863 100644
--- a/sys/compat/svr4/svr4_misc.c
+++ b/sys/compat/svr4/svr4_misc.c
@@ -271,7 +271,7 @@ svr4_sys_getdents64(td, uap)
return (EBADF);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if (vp->v_type != VDIR) {
fdrop(fp, td);
@@ -451,7 +451,7 @@ svr4_sys_getdents(td, uap)
return (EBADF);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if (vp->v_type != VDIR) {
fdrop(fp, td);
return (EINVAL);
@@ -627,7 +627,7 @@ svr4_sys_fchroot(td, uap)
return error;
if ((error = getvnode(fdp, uap->fd, &fp)) != 0)
return error;
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
if (vp->v_type != VDIR)
error = ENOTDIR;
diff --git a/sys/compat/svr4/svr4_socket.c b/sys/compat/svr4/svr4_socket.c
index a2c49b4..b5da396 100644
--- a/sys/compat/svr4/svr4_socket.c
+++ b/sys/compat/svr4/svr4_socket.c
@@ -82,7 +82,7 @@ svr4_find_socket(td, fp, dev, ino)
ino_t ino;
{
struct svr4_sockcache_entry *e;
- void *cookie = fp->un_data.socket->so_emuldata;
+ void *cookie = ((struct socket *)fp->f_data)->so_emuldata;
if (svr4_str_initialized != 2) {
if (atomic_cmpset_acq_int(&svr4_str_initialized, 0, 1)) {
diff --git a/sys/compat/svr4/svr4_stream.c b/sys/compat/svr4/svr4_stream.c
index ae885ed..9a5c465 100644
--- a/sys/compat/svr4/svr4_stream.c
+++ b/sys/compat/svr4/svr4_stream.c
@@ -644,7 +644,7 @@ getparm(fp, pa)
if (st == NULL)
return;
- so = fp->un_data.socket;
+ so = fp->f_data;
pa->family = st->s_family;
diff --git a/sys/dev/streams/streams.c b/sys/dev/streams/streams.c
index 039930e..4347d99 100644
--- a/sys/dev/streams/streams.c
+++ b/sys/dev/streams/streams.c
@@ -274,7 +274,7 @@ streamsopen(dev_t dev, int oflags, int devtype, struct thread *td)
}
FILEDESC_LOCK(p->p_fd);
- fp->un_data.socket = so;
+ fp->f_data = so;
fp->f_flag = FREAD|FWRITE;
fp->f_ops = &svr4_netops;
fp->f_type = DTYPE_SOCKET;
@@ -357,7 +357,7 @@ svr4_stream_get(fp)
if (fp == NULL || fp->f_type != DTYPE_SOCKET)
return NULL;
- so = fp->un_data.socket;
+ so = fp->f_data;
/*
* mpfixme: lock socketbuffer here
@@ -395,7 +395,7 @@ svr4_delete_socket(p, fp)
struct file *fp;
{
struct svr4_sockcache_entry *e;
- void *cookie = fp->un_data.socket->so_emuldata;
+ void *cookie = ((struct socket *)fp->f_data)->so_emuldata;
while (svr4_str_initialized != 2) {
if (atomic_cmpset_acq_int(&svr4_str_initialized, 0, 1)) {
@@ -418,7 +418,7 @@ svr4_delete_socket(p, fp)
static int
svr4_soo_close(struct file *fp, struct thread *td)
{
- struct socket *so = fp->un_data.socket;
+ struct socket *so = fp->f_data;
/* CHECKUNIT_DIAG(ENXIO);*/
diff --git a/sys/fs/fdescfs/fdesc_vnops.c b/sys/fs/fdescfs/fdesc_vnops.c
index 87b25cc..2225220 100644
--- a/sys/fs/fdescfs/fdesc_vnops.c
+++ b/sys/fs/fdescfs/fdesc_vnops.c
@@ -395,7 +395,7 @@ fdesc_setattr(ap)
}
return (error);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) {
fdrop(fp, ap->a_td);
return (error);
diff --git a/sys/fs/fifofs/fifo_vnops.c b/sys/fs/fifofs/fifo_vnops.c
index 558238a..64fee38 100644
--- a/sys/fs/fifofs/fifo_vnops.c
+++ b/sys/fs/fifofs/fifo_vnops.c
@@ -352,7 +352,7 @@ fifo_ioctl(ap)
if (ap->a_command == FIONBIO)
return (0);
if (ap->a_fflag & FREAD) {
- filetmp.un_data.socket = ap->a_vp->v_fifoinfo->fi_readsock;
+ filetmp.f_data = ap->a_vp->v_fifoinfo->fi_readsock;
filetmp.f_cred = ap->a_cred;
error = soo_ioctl(&filetmp, ap->a_command, ap->a_data,
ap->a_td->td_ucred, ap->a_td);
@@ -360,7 +360,7 @@ fifo_ioctl(ap)
return (error);
}
if (ap->a_fflag & FWRITE) {
- filetmp.un_data.socket = ap->a_vp->v_fifoinfo->fi_writesock;
+ filetmp.f_data = ap->a_vp->v_fifoinfo->fi_writesock;
filetmp.f_cred = ap->a_cred;
error = soo_ioctl(&filetmp, ap->a_command, ap->a_data,
ap->a_td->td_ucred, ap->a_td);
@@ -482,9 +482,9 @@ fifo_poll(ap)
events |= POLLINIGNEOF;
}
- filetmp.un_data.socket = ap->a_vp->v_fifoinfo->fi_readsock;
+ filetmp.f_data = ap->a_vp->v_fifoinfo->fi_readsock;
filetmp.f_cred = ap->a_cred;
- if (filetmp.un_data.socket)
+ if (filetmp.f_data)
revents |= soo_poll(&filetmp, events,
ap->a_td->td_ucred, ap->a_td);
@@ -497,11 +497,12 @@ fifo_poll(ap)
}
events = ap->a_events & (POLLOUT | POLLWRNORM | POLLWRBAND);
if (events) {
- filetmp.un_data.socket = ap->a_vp->v_fifoinfo->fi_writesock;
+ filetmp.f_data = ap->a_vp->v_fifoinfo->fi_writesock;
filetmp.f_cred = ap->a_cred;
- if (filetmp.un_data.socket)
+ if (filetmp.f_data) {
revents |= soo_poll(&filetmp, events,
ap->a_td->td_ucred, ap->a_td);
+ }
}
return (revents);
}
diff --git a/sys/fs/portalfs/portal_vfsops.c b/sys/fs/portalfs/portal_vfsops.c
index d4cb1a6..66e516d 100644
--- a/sys/fs/portalfs/portal_vfsops.c
+++ b/sys/fs/portalfs/portal_vfsops.c
@@ -106,7 +106,7 @@ portal_mount(mp, path, data, ndp, td)
fdrop(fp, td);
return(ENOTSOCK);
}
- so = fp->un_data.socket; /* XXX race against userland */
+ so = fp->f_data; /* XXX race against userland */
if (so->so_proto->pr_domain->dom_family != AF_UNIX) {
fdrop(fp, td);
return (ESOCKTNOSUPPORT);
@@ -186,7 +186,7 @@ portal_unmount(mp, mntflags, td)
* daemon to wake up, and then the accept will get ECONNABORTED
* which it interprets as a request to go and bury itself.
*/
- soshutdown(VFSTOPORTAL(mp)->pm_server->un_data.socket, 2);
+ soshutdown(VFSTOPORTAL(mp)->pm_server->f_data, 2);
/*
* Discard reference to underlying file. Must call closef because
* this may be the last reference.
diff --git a/sys/fs/portalfs/portal_vnops.c b/sys/fs/portalfs/portal_vnops.c
index 18c77a6..0d8c06d 100644
--- a/sys/fs/portalfs/portal_vnops.c
+++ b/sys/fs/portalfs/portal_vnops.c
@@ -269,7 +269,7 @@ portal_open(ap)
/*
* Kick off connection
*/
- error = portal_connect(so, fmp->pm_server->un_data.socket);
+ error = portal_connect(so, fmp->pm_server->f_data);
if (error)
goto bad;
diff --git a/sys/fs/unionfs/union_subr.c b/sys/fs/unionfs/union_subr.c
index 5d3d12c..e08b70a 100644
--- a/sys/fs/unionfs/union_subr.c
+++ b/sys/fs/unionfs/union_subr.c
@@ -1329,7 +1329,7 @@ union_dircheck(struct thread *td, struct vnode **vp, struct file *fp)
}
VOP_UNLOCK(lvp, 0, td);
FILE_LOCK(fp);
- fp->un_data.vnode = lvp;
+ fp->f_data = lvp;
fp->f_offset = 0;
FILE_UNLOCK(fp);
error = vn_close(*vp, FREAD, fp->f_cred, td);
diff --git a/sys/i386/ibcs2/ibcs2_misc.c b/sys/i386/ibcs2/ibcs2_misc.c
index 75796b0..295be86 100644
--- a/sys/i386/ibcs2/ibcs2_misc.c
+++ b/sys/i386/ibcs2/ibcs2_misc.c
@@ -323,7 +323,7 @@ ibcs2_getdents(td, uap)
fdrop(fp, td);
return (EBADF);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if (vp->v_type != VDIR) { /* XXX vnode readdir op should do this */
fdrop(fp, td);
return (EINVAL);
@@ -480,7 +480,7 @@ ibcs2_read(td, uap)
fdrop(fp, td);
return (EBADF);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if (vp->v_type != VDIR) {
fdrop(fp, td);
return read(td, (struct read_args *)uap);
diff --git a/sys/i386/ibcs2/ibcs2_stat.c b/sys/i386/ibcs2/ibcs2_stat.c
index eb66407..7992535 100644
--- a/sys/i386/ibcs2/ibcs2_stat.c
+++ b/sys/i386/ibcs2/ibcs2_stat.c
@@ -132,7 +132,7 @@ ibcs2_fstatfs(td, uap)
if ((error = getvnode(td->td_proc->p_fd, uap->fd, &fp)) != 0)
return (error);
- mp = fp->un_data.vnode->v_mount;
+ mp = ((struct vnode *)fp->f_data)->v_mount;
sp = &mp->mnt_stat;
error = VFS_STATFS(mp, sp, td);
fdrop(fp, td);
diff --git a/sys/kern/kern_acl.c b/sys/kern/kern_acl.c
index 1611614..6b9f942 100644
--- a/sys/kern/kern_acl.c
+++ b/sys/kern/kern_acl.c
@@ -780,8 +780,7 @@ __acl_get_fd(struct thread *td, struct __acl_get_fd_args *uap)
mtx_lock(&Giant);
error = getvnode(td->td_proc->p_fd, uap->filedes, &fp);
if (error == 0) {
- error = vacl_get_acl(td, fp->un_data.vnode,
- uap->type, uap->aclp);
+ error = vacl_get_acl(td, fp->f_data, uap->type, uap->aclp);
fdrop(fp, td);
}
mtx_unlock(&Giant);
@@ -802,8 +801,7 @@ __acl_set_fd(struct thread *td, struct __acl_set_fd_args *uap)
mtx_lock(&Giant);
error = getvnode(td->td_proc->p_fd, uap->filedes, &fp);
if (error == 0) {
- error = vacl_set_acl(td, fp->un_data.vnode,
- uap->type, uap->aclp);
+ error = vacl_set_acl(td, fp->f_data, uap->type, uap->aclp);
fdrop(fp, td);
}
mtx_unlock(&Giant);
@@ -868,7 +866,7 @@ __acl_delete_fd(struct thread *td, struct __acl_delete_fd_args *uap)
mtx_lock(&Giant);
error = getvnode(td->td_proc->p_fd, uap->filedes, &fp);
if (error == 0) {
- error = vacl_delete(td, fp->un_data.vnode, uap->type);
+ error = vacl_delete(td, fp->f_data, uap->type);
fdrop(fp, td);
}
mtx_unlock(&Giant);
@@ -933,8 +931,7 @@ __acl_aclcheck_fd(struct thread *td, struct __acl_aclcheck_fd_args *uap)
mtx_lock(&Giant);
error = getvnode(td->td_proc->p_fd, uap->filedes, &fp);
if (error == 0) {
- error = vacl_aclcheck(td, fp->un_data.vnode,
- uap->type, uap->aclp);
+ error = vacl_aclcheck(td, fp->f_data, uap->type, uap->aclp);
fdrop(fp, td);
}
mtx_unlock(&Giant);
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index c11762b..cf802ab 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -355,7 +355,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg)
*/
fhold(fp);
FILEDESC_UNLOCK(fdp);
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
switch (flp->l_type) {
case F_RDLCK:
@@ -420,7 +420,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg)
*/
fhold(fp);
FILEDESC_UNLOCK(fdp);
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = VOP_ADVLOCK(vp, (caddr_t)p->p_leader, F_GETLK, flp,
F_POSIX);
fdrop(fp, td);
@@ -979,7 +979,7 @@ fpathconf(td, uap)
break;
case DTYPE_FIFO:
case DTYPE_VNODE:
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
mtx_lock(&Giant);
error = VOP_PATHCONF(vp, uap->name, td->td_retval);
mtx_unlock(&Giant);
@@ -1424,7 +1424,7 @@ static int
is_unsafe(struct file *fp)
{
if (fp->f_type == DTYPE_VNODE) {
- struct vnode *vp = fp->un_data.vnode;
+ struct vnode *vp = fp->f_data;
if ((vp->v_vflag & VV_PROCDEP) != 0)
return (1);
@@ -1582,7 +1582,7 @@ fdcheckstd(td)
break;
}
NDFREE(&nd, NDF_ONLY_PNBUF);
- fp->un_data.vnode = nd.ni_vp;
+ fp->f_data = nd.ni_vp;
fp->f_flag = flags;
fp->f_ops = &vnops;
fp->f_type = DTYPE_VNODE;
@@ -1627,7 +1627,7 @@ closef(fp, td)
lf.l_start = 0;
lf.l_len = 0;
lf.l_type = F_UNLCK;
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
(void) VOP_ADVLOCK(vp, (caddr_t)td->td_proc->p_leader,
F_UNLCK, &lf, F_POSIX);
}
@@ -1741,7 +1741,7 @@ _fgetvp(struct thread *td, int fd, struct vnode **vpp, int flags)
if (fp->f_type != DTYPE_VNODE && fp->f_type != DTYPE_FIFO) {
error = EINVAL;
} else {
- *vpp = fp->un_data.vnode;
+ *vpp = fp->f_data;
vref(*vpp);
}
FILEDESC_UNLOCK(td->td_proc->p_fd);
@@ -1790,7 +1790,7 @@ fgetsock(struct thread *td, int fd, struct socket **spp, u_int *fflagp)
if (fp->f_type != DTYPE_SOCKET) {
error = ENOTSOCK;
} else {
- *spp = fp->un_data.socket;
+ *spp = fp->f_data;
if (fflagp)
*fflagp = fp->f_flag;
soref(*spp);
@@ -1838,7 +1838,7 @@ fdrop_locked(fp, td)
lf.l_start = 0;
lf.l_len = 0;
lf.l_type = F_UNLCK;
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
FILE_UNLOCK(fp);
(void) VOP_ADVLOCK(vp, (caddr_t)fp, F_UNLCK, &lf, F_FLOCK);
} else
@@ -1886,7 +1886,7 @@ flock(td, uap)
}
mtx_lock(&Giant);
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
lf.l_whence = SEEK_SET;
lf.l_start = 0;
lf.l_len = 0;
@@ -2110,14 +2110,12 @@ sysctl_kern_file(SYSCTL_HANDLER_ARGS)
continue;
xf.xf_fd = n;
xf.xf_file = fp;
- xf.xun_data.generic = fp->un_data.generic;
-#define XF_COPY(field) xf.xf_##field = fp->f_##field
- XF_COPY(type);
- XF_COPY(count);
- XF_COPY(msgcount);
- XF_COPY(offset);
- XF_COPY(flag);
-#undef XF_COPY
+ xf.xf_data = fp->f_data;
+ xf.xf_type = fp->f_type;
+ xf.xf_count = fp->f_count;
+ xf.xf_msgcount = fp->f_msgcount;
+ xf.xf_offset = fp->f_offset;
+ xf.xf_flag = fp->f_flag;
error = SYSCTL_OUT(req, &xf, sizeof(xf));
if (error)
break;
diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c
index e36fdb4..9ff14a6 100644
--- a/sys/kern/kern_event.c
+++ b/sys/kern/kern_event.c
@@ -157,7 +157,7 @@ filt_fileattach(struct knote *kn)
static int
kqueue_kqfilter(struct file *fp, struct knote *kn)
{
- struct kqueue *kq = kn->kn_fp->un_data.kqueue;
+ struct kqueue *kq = kn->kn_fp->f_data;
if (kn->kn_filter != EVFILT_READ)
return (1);
@@ -170,7 +170,7 @@ kqueue_kqfilter(struct file *fp, struct knote *kn)
static void
filt_kqdetach(struct knote *kn)
{
- struct kqueue *kq = kn->kn_fp->un_data.kqueue;
+ struct kqueue *kq = kn->kn_fp->f_data;
SLIST_REMOVE(&kq->kq_sel.si_note, kn, knote, kn_selnext);
}
@@ -179,7 +179,7 @@ filt_kqdetach(struct knote *kn)
static int
filt_kqueue(struct knote *kn, long hint)
{
- struct kqueue *kq = kn->kn_fp->un_data.kqueue;
+ struct kqueue *kq = kn->kn_fp->f_data;
kn->kn_data = kq->kq_count;
return (kn->kn_data > 0);
@@ -378,7 +378,7 @@ kqueue(struct thread *td, struct kqueue_args *uap)
fp->f_type = DTYPE_KQUEUE;
fp->f_ops = &kqueueops;
TAILQ_INIT(&kq->kq_head);
- fp->un_data.kqueue = kq;
+ fp->f_data = kq;
FILE_UNLOCK(fp);
FILEDESC_LOCK(fdp);
td->td_retval[0] = fd;
@@ -427,7 +427,7 @@ kevent(struct thread *td, struct kevent_args *uap)
}
mtx_lock(&Giant);
- kq = fp->un_data.kqueue;
+ kq = fp->f_data;
nerrors = 0;
while (uap->nchanges > 0) {
@@ -650,7 +650,7 @@ kqueue_scan(struct file *fp, int maxevents, struct kevent *ulistp,
FILE_LOCK_ASSERT(fp, MA_NOTOWNED);
- kq = fp->un_data.kqueue;
+ kq = fp->f_data;
count = maxevents;
if (count == 0)
goto done;
@@ -806,7 +806,7 @@ kqueue_poll(struct file *fp, int events, struct ucred *active_cred,
int revents = 0;
int s = splnet();
- kq = fp->un_data.kqueue;
+ kq = fp->f_data;
if (events & (POLLIN | POLLRDNORM)) {
if (kq->kq_count) {
revents |= events & (POLLIN | POLLRDNORM);
@@ -826,7 +826,7 @@ kqueue_stat(struct file *fp, struct stat *st, struct ucred *active_cred,
{
struct kqueue *kq;
- kq = fp->un_data.kqueue;
+ kq = fp->f_data;
bzero((void *)st, sizeof(*st));
st->st_size = kq->kq_count;
st->st_blksize = sizeof(struct kevent);
@@ -838,7 +838,7 @@ kqueue_stat(struct file *fp, struct stat *st, struct ucred *active_cred,
static int
kqueue_close(struct file *fp, struct thread *td)
{
- struct kqueue *kq = fp->un_data.kqueue;
+ struct kqueue *kq = fp->f_data;
struct filedesc *fdp = td->td_proc->p_fd;
struct knote **knp, *kn, *kn0;
int i;
@@ -885,7 +885,7 @@ kqueue_close(struct file *fp, struct thread *td)
}
FILEDESC_UNLOCK(fdp);
free(kq, M_KQUEUE);
- fp->un_data.kqueue = NULL;
+ fp->f_data = NULL;
return (0);
}
diff --git a/sys/kern/kern_mac.c b/sys/kern/kern_mac.c
index 299ad50..e9d9eeb 100644
--- a/sys/kern/kern_mac.c
+++ b/sys/kern/kern_mac.c
@@ -3211,7 +3211,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
switch (fp->f_type) {
case DTYPE_FIFO:
case DTYPE_VNODE:
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
mac_init_vnode_label(&intlabel);
@@ -3221,7 +3221,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
break;
case DTYPE_PIPE:
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
mac_init_pipe_label(&intlabel);
@@ -3419,7 +3419,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
break;
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
if (error != 0) {
mac_destroy_vnode_label(&intlabel);
@@ -3438,7 +3438,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
mac_init_pipe_label(&intlabel);
error = mac_internalize_pipe_label(&intlabel, buffer);
if (error == 0) {
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
PIPE_LOCK(pipe);
error = mac_pipe_label_set(td->td_ucred, pipe,
&intlabel);
diff --git a/sys/kern/subr_acl_posix1e.c b/sys/kern/subr_acl_posix1e.c
index 1611614..6b9f942 100644
--- a/sys/kern/subr_acl_posix1e.c
+++ b/sys/kern/subr_acl_posix1e.c
@@ -780,8 +780,7 @@ __acl_get_fd(struct thread *td, struct __acl_get_fd_args *uap)
mtx_lock(&Giant);
error = getvnode(td->td_proc->p_fd, uap->filedes, &fp);
if (error == 0) {
- error = vacl_get_acl(td, fp->un_data.vnode,
- uap->type, uap->aclp);
+ error = vacl_get_acl(td, fp->f_data, uap->type, uap->aclp);
fdrop(fp, td);
}
mtx_unlock(&Giant);
@@ -802,8 +801,7 @@ __acl_set_fd(struct thread *td, struct __acl_set_fd_args *uap)
mtx_lock(&Giant);
error = getvnode(td->td_proc->p_fd, uap->filedes, &fp);
if (error == 0) {
- error = vacl_set_acl(td, fp->un_data.vnode,
- uap->type, uap->aclp);
+ error = vacl_set_acl(td, fp->f_data, uap->type, uap->aclp);
fdrop(fp, td);
}
mtx_unlock(&Giant);
@@ -868,7 +866,7 @@ __acl_delete_fd(struct thread *td, struct __acl_delete_fd_args *uap)
mtx_lock(&Giant);
error = getvnode(td->td_proc->p_fd, uap->filedes, &fp);
if (error == 0) {
- error = vacl_delete(td, fp->un_data.vnode, uap->type);
+ error = vacl_delete(td, fp->f_data, uap->type);
fdrop(fp, td);
}
mtx_unlock(&Giant);
@@ -933,8 +931,7 @@ __acl_aclcheck_fd(struct thread *td, struct __acl_aclcheck_fd_args *uap)
mtx_lock(&Giant);
error = getvnode(td->td_proc->p_fd, uap->filedes, &fp);
if (error == 0) {
- error = vacl_aclcheck(td, fp->un_data.vnode,
- uap->type, uap->aclp);
+ error = vacl_aclcheck(td, fp->f_data, uap->type, uap->aclp);
fdrop(fp, td);
}
mtx_unlock(&Giant);
diff --git a/sys/kern/sys_pipe.c b/sys/kern/sys_pipe.c
index 84ce363..915ee3e 100644
--- a/sys/kern/sys_pipe.c
+++ b/sys/kern/sys_pipe.c
@@ -238,7 +238,7 @@ pipe(td, uap)
FILE_LOCK(rf);
rf->f_flag = FREAD | FWRITE;
rf->f_type = DTYPE_PIPE;
- rf->un_data.pipe = rpipe;
+ rf->f_data = rpipe;
rf->f_ops = &pipeops;
FILE_UNLOCK(rf);
error = falloc(td, &wf, &fd);
@@ -259,7 +259,7 @@ pipe(td, uap)
FILE_LOCK(wf);
wf->f_flag = FREAD | FWRITE;
wf->f_type = DTYPE_PIPE;
- wf->un_data.pipe = wpipe;
+ wf->f_data = wpipe;
wf->f_ops = &pipeops;
FILE_UNLOCK(wf);
td->td_retval[1] = fd;
@@ -452,7 +452,7 @@ pipe_read(fp, uio, active_cred, flags, td)
struct thread *td;
int flags;
{
- struct pipe *rpipe = fp->un_data.pipe;
+ struct pipe *rpipe = fp->f_data;
int error;
int nread = 0;
u_int size;
@@ -868,7 +868,7 @@ pipe_write(fp, uio, active_cred, flags, td)
int orig_resid;
struct pipe *wpipe, *rpipe;
- rpipe = fp->un_data.pipe;
+ rpipe = fp->f_data;
wpipe = rpipe->pipe_peer;
PIPE_LOCK(rpipe);
@@ -1155,7 +1155,7 @@ pipe_ioctl(fp, cmd, data, active_cred, td)
struct ucred *active_cred;
struct thread *td;
{
- struct pipe *mpipe = fp->un_data.pipe;
+ struct pipe *mpipe = fp->f_data;
#ifdef MAC
int error;
#endif
@@ -1223,7 +1223,7 @@ pipe_poll(fp, events, active_cred, td)
struct ucred *active_cred;
struct thread *td;
{
- struct pipe *rpipe = fp->un_data.pipe;
+ struct pipe *rpipe = fp->f_data;
struct pipe *wpipe;
int revents = 0;
#ifdef MAC
@@ -1284,7 +1284,7 @@ pipe_stat(fp, ub, active_cred, td)
struct ucred *active_cred;
struct thread *td;
{
- struct pipe *pipe = fp->un_data.pipe;
+ struct pipe *pipe = fp->f_data;
#ifdef MAC
int error;
@@ -1317,10 +1317,10 @@ pipe_close(fp, td)
struct file *fp;
struct thread *td;
{
- struct pipe *cpipe = fp->un_data.pipe;
+ struct pipe *cpipe = fp->f_data;
fp->f_ops = &badfileops;
- fp->un_data.pipe = NULL;
+ fp->f_data = NULL;
funsetown(&cpipe->pipe_sigio);
pipeclose(cpipe);
return (0);
@@ -1428,7 +1428,7 @@ pipe_kqfilter(struct file *fp, struct knote *kn)
{
struct pipe *cpipe;
- cpipe = kn->kn_fp->un_data.pipe;
+ cpipe = kn->kn_fp->f_data;
switch (kn->kn_filter) {
case EVFILT_READ:
kn->kn_fop = &pipe_rfiltops;
@@ -1465,7 +1465,7 @@ filt_pipedetach(struct knote *kn)
static int
filt_piperead(struct knote *kn, long hint)
{
- struct pipe *rpipe = kn->kn_fp->un_data.pipe;
+ struct pipe *rpipe = kn->kn_fp->f_data;
struct pipe *wpipe = rpipe->pipe_peer;
PIPE_LOCK(rpipe);
@@ -1487,7 +1487,7 @@ filt_piperead(struct knote *kn, long hint)
static int
filt_pipewrite(struct knote *kn, long hint)
{
- struct pipe *rpipe = kn->kn_fp->un_data.pipe;
+ struct pipe *rpipe = kn->kn_fp->f_data;
struct pipe *wpipe = rpipe->pipe_peer;
PIPE_LOCK(rpipe);
diff --git a/sys/kern/sys_socket.c b/sys/kern/sys_socket.c
index c2c3076..9936cd2 100644
--- a/sys/kern/sys_socket.c
+++ b/sys/kern/sys_socket.c
@@ -69,7 +69,7 @@ soo_read(fp, uio, active_cred, flags, td)
struct thread *td;
int flags;
{
- struct socket *so = fp->un_data.socket;
+ struct socket *so = fp->f_data;
int error;
mtx_lock(&Giant);
@@ -94,7 +94,7 @@ soo_write(fp, uio, active_cred, flags, td)
struct thread *td;
int flags;
{
- struct socket *so = fp->un_data.socket;
+ struct socket *so = fp->f_data;
int error;
mtx_lock(&Giant);
@@ -119,7 +119,7 @@ soo_ioctl(fp, cmd, data, active_cred, td)
struct ucred *active_cred;
struct thread *td;
{
- register struct socket *so = fp->un_data.socket;
+ register struct socket *so = fp->f_data;
switch (cmd) {
@@ -183,7 +183,7 @@ soo_poll(fp, events, active_cred, td)
struct ucred *active_cred;
struct thread *td;
{
- struct socket *so = fp->un_data.socket;
+ struct socket *so = fp->f_data;
return so->so_proto->pr_usrreqs->pru_sopoll(so, events,
fp->f_cred, td);
}
@@ -195,7 +195,7 @@ soo_stat(fp, ub, active_cred, td)
struct ucred *active_cred;
struct thread *td;
{
- struct socket *so = fp->un_data.socket;
+ struct socket *so = fp->f_data;
bzero((caddr_t)ub, sizeof (*ub));
ub->st_mode = S_IFSOCK;
@@ -229,9 +229,9 @@ soo_close(fp, td)
int error = 0;
struct socket *so;
- so = fp->un_data.socket;
+ so = fp->f_data;
fp->f_ops = &badfileops;
- fp->un_data.socket = 0;
+ fp->f_data = NULL;
if (so)
error = soclose(so);
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index aedcecc..c4d596f 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -1735,7 +1735,7 @@ sopoll(struct socket *so, int events, struct ucred *active_cred,
int
soo_kqfilter(struct file *fp, struct knote *kn)
{
- struct socket *so = kn->kn_fp->un_data.socket;
+ struct socket *so = kn->kn_fp->f_data;
struct sockbuf *sb;
int s;
@@ -1765,7 +1765,7 @@ soo_kqfilter(struct file *fp, struct knote *kn)
static void
filt_sordetach(struct knote *kn)
{
- struct socket *so = kn->kn_fp->un_data.socket;
+ struct socket *so = kn->kn_fp->f_data;
int s = splnet();
SLIST_REMOVE(&so->so_rcv.sb_sel.si_note, kn, knote, kn_selnext);
@@ -1778,7 +1778,7 @@ filt_sordetach(struct knote *kn)
static int
filt_soread(struct knote *kn, long hint)
{
- struct socket *so = kn->kn_fp->un_data.socket;
+ struct socket *so = kn->kn_fp->f_data;
kn->kn_data = so->so_rcv.sb_cc - so->so_rcv.sb_ctl;
if (so->so_state & SS_CANTRCVMORE) {
@@ -1796,7 +1796,7 @@ filt_soread(struct knote *kn, long hint)
static void
filt_sowdetach(struct knote *kn)
{
- struct socket *so = kn->kn_fp->un_data.socket;
+ struct socket *so = kn->kn_fp->f_data;
int s = splnet();
SLIST_REMOVE(&so->so_snd.sb_sel.si_note, kn, knote, kn_selnext);
@@ -1809,7 +1809,7 @@ filt_sowdetach(struct knote *kn)
static int
filt_sowrite(struct knote *kn, long hint)
{
- struct socket *so = kn->kn_fp->un_data.socket;
+ struct socket *so = kn->kn_fp->f_data;
kn->kn_data = sbspace(&so->so_snd);
if (so->so_state & SS_CANTSENDMORE) {
@@ -1831,7 +1831,7 @@ filt_sowrite(struct knote *kn, long hint)
static int
filt_solisten(struct knote *kn, long hint)
{
- struct socket *so = kn->kn_fp->un_data.socket;
+ struct socket *so = kn->kn_fp->f_data;
kn->kn_data = so->so_qlen;
return (! TAILQ_EMPTY(&so->so_comp));
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c
index c0ffa9d..2bd0c9f0 100644
--- a/sys/kern/uipc_syscalls.c
+++ b/sys/kern/uipc_syscalls.c
@@ -141,7 +141,7 @@ socket(td, uap)
} else
FILEDESC_UNLOCK(fdp);
} else {
- fp->un_data.socket = so; /* already has ref count */
+ fp->f_data = so; /* already has ref count */
fp->f_flag = FREAD|FWRITE;
fp->f_ops = &socketops;
fp->f_type = DTYPE_SOCKET;
@@ -329,7 +329,7 @@ accept1(td, uap, compat)
FILE_LOCK(nfp);
soref(so); /* file descriptor reference */
- nfp->un_data.socket = so; /* nfp has ref count from falloc */
+ nfp->f_data = so; /* nfp has ref count from falloc */
nfp->f_flag = fflag;
nfp->f_ops = &socketops;
nfp->f_type = DTYPE_SOCKET;
@@ -524,12 +524,12 @@ socketpair(td, uap)
goto free2;
fhold(fp1);
sv[0] = fd;
- fp1->un_data.socket = so1; /* so1 already has ref count */
+ fp1->f_data = so1; /* so1 already has ref count */
error = falloc(td, &fp2, &fd);
if (error)
goto free3;
fhold(fp2);
- fp2->un_data.socket = so2; /* so2 already has ref count */
+ fp2->f_data = so2; /* so2 already has ref count */
sv[1] = fd;
error = soconnect2(so1, so2);
if (error)
diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c
index 6846352..04b4c6d 100644
--- a/sys/kern/uipc_usrreq.c
+++ b/sys/kern/uipc_usrreq.c
@@ -1305,7 +1305,7 @@ unp_gc()
* Now check if it is possibly one of OUR sockets.
*/
if (fp->f_type != DTYPE_SOCKET ||
- (so = fp->un_data.socket) == 0) {
+ (so = fp->f_data) == NULL) {
FILE_UNLOCK(fp);
continue;
}
@@ -1413,9 +1413,9 @@ unp_gc()
struct file *tfp = *fpp;
FILE_LOCK(tfp);
if (tfp->f_type == DTYPE_SOCKET &&
- tfp->un_data.socket != NULL) {
+ tfp->f_data != NULL) {
FILE_UNLOCK(tfp);
- sorflush(tfp->un_data.socket);
+ sorflush(tfp->f_data);
} else
FILE_UNLOCK(tfp);
}
diff --git a/sys/kern/vfs_acl.c b/sys/kern/vfs_acl.c
index 1611614..6b9f942 100644
--- a/sys/kern/vfs_acl.c
+++ b/sys/kern/vfs_acl.c
@@ -780,8 +780,7 @@ __acl_get_fd(struct thread *td, struct __acl_get_fd_args *uap)
mtx_lock(&Giant);
error = getvnode(td->td_proc->p_fd, uap->filedes, &fp);
if (error == 0) {
- error = vacl_get_acl(td, fp->un_data.vnode,
- uap->type, uap->aclp);
+ error = vacl_get_acl(td, fp->f_data, uap->type, uap->aclp);
fdrop(fp, td);
}
mtx_unlock(&Giant);
@@ -802,8 +801,7 @@ __acl_set_fd(struct thread *td, struct __acl_set_fd_args *uap)
mtx_lock(&Giant);
error = getvnode(td->td_proc->p_fd, uap->filedes, &fp);
if (error == 0) {
- error = vacl_set_acl(td, fp->un_data.vnode,
- uap->type, uap->aclp);
+ error = vacl_set_acl(td, fp->f_data, uap->type, uap->aclp);
fdrop(fp, td);
}
mtx_unlock(&Giant);
@@ -868,7 +866,7 @@ __acl_delete_fd(struct thread *td, struct __acl_delete_fd_args *uap)
mtx_lock(&Giant);
error = getvnode(td->td_proc->p_fd, uap->filedes, &fp);
if (error == 0) {
- error = vacl_delete(td, fp->un_data.vnode, uap->type);
+ error = vacl_delete(td, fp->f_data, uap->type);
fdrop(fp, td);
}
mtx_unlock(&Giant);
@@ -933,8 +931,7 @@ __acl_aclcheck_fd(struct thread *td, struct __acl_aclcheck_fd_args *uap)
mtx_lock(&Giant);
error = getvnode(td->td_proc->p_fd, uap->filedes, &fp);
if (error == 0) {
- error = vacl_aclcheck(td, fp->un_data.vnode,
- uap->type, uap->aclp);
+ error = vacl_aclcheck(td, fp->f_data, uap->type, uap->aclp);
fdrop(fp, td);
}
mtx_unlock(&Giant);
diff --git a/sys/kern/vfs_aio.c b/sys/kern/vfs_aio.c
index 23e49d5..4bf8724 100644
--- a/sys/kern/vfs_aio.c
+++ b/sys/kern/vfs_aio.c
@@ -555,7 +555,7 @@ aio_proc_rundown(struct proc *p)
aiocbn = TAILQ_NEXT(aiocbe, plist);
fp = aiocbe->fd_file;
if (fp != NULL) {
- so = fp->un_data.socket;
+ so = fp->f_data;
TAILQ_REMOVE(&so->so_aiojobq, aiocbe, list);
if (TAILQ_EMPTY(&so->so_aiojobq)) {
so->so_snd.sb_flags &= ~SB_AIO;
@@ -1059,7 +1059,7 @@ aio_qphysio(struct proc *p, struct aiocblist *aiocbe)
if (fp->f_type != DTYPE_VNODE)
return (-1);
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
/*
* If its not a disk, we don't want to return a positive error.
@@ -1406,7 +1406,7 @@ _aio_aqueue(struct thread *td, struct aiocb *job, struct aio_liojob *lj, int typ
error = EBADF;
goto aqueue_fail;
}
- kq = kq_fp->un_data.kqueue;
+ kq = kq_fp->f_data;
kev.ident = (uintptr_t)aiocbe->uuaiocb;
kev.filter = EVFILT_AIO;
kev.flags = EV_ADD | EV_ENABLE | EV_FLAG1;
@@ -1441,7 +1441,7 @@ no_kqueue:
* socket, and set the flags so we get a call when sbnotify()
* happens.
*/
- so = fp->un_data.socket;
+ so = fp->f_data;
s = splnet();
if (((opcode == LIO_READ) && (!soreadable(so))) || ((opcode ==
LIO_WRITE) && (!sowriteable(so)))) {
@@ -1731,14 +1731,14 @@ aio_cancel(struct thread *td, struct aio_cancel_args *uap)
return (EBADF);
if (fp->f_type == DTYPE_VNODE) {
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if (vn_isdisk(vp,&error)) {
td->td_retval[0] = AIO_NOTCANCELED;
return 0;
}
} else if (fp->f_type == DTYPE_SOCKET) {
- so = fp->un_data.socket;
+ so = fp->f_data;
s = splnet();
diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c
index 0948c31..432ebed 100644
--- a/sys/kern/vfs_extattr.c
+++ b/sys/kern/vfs_extattr.c
@@ -278,7 +278,7 @@ fstatfs(td, uap)
if ((error = getvnode(td->td_proc->p_fd, uap->fd, &fp)) != 0)
return (error);
- mp = (fp->un_data.vnode)->v_mount;
+ mp = ((struct vnode *)fp->f_data)->v_mount;
fdrop(fp, td);
if (mp == NULL)
return (EBADF);
@@ -399,7 +399,7 @@ fchdir(td, uap)
if ((error = getvnode(fdp, uap->fd, &fp)) != 0)
return (error);
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
VREF(vp);
fdrop(fp, td);
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
@@ -492,7 +492,7 @@ chroot_refuse_vdir_fds(fdp)
if (fp == NULL)
continue;
if (fp->f_type == DTYPE_VNODE) {
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if (vp->v_type == VDIR)
return (EPERM);
}
@@ -724,7 +724,7 @@ kern_open(struct thread *td, char *path, enum uio_seg pathseg, int flags,
KASSERT(!vn_canvmio(vp) || VOP_GETVOBJECT(vp, NULL) == 0,
("open: vmio vnode has no backing object after vn_open"));
- fp->un_data.vnode = vp;
+ fp->f_data = vp;
fp->f_flag = flags & FMASK;
fp->f_ops = &vnops;
fp->f_type = (vp->v_type == VFIFO ? DTYPE_FIFO : DTYPE_VNODE);
@@ -1319,7 +1319,7 @@ lseek(td, uap)
fdrop(fp, td);
return (ESPIPE);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
noneg = (vp->v_type != VCHR);
offset = uap->offset;
switch (uap->whence) {
@@ -2032,7 +2032,7 @@ fchflags(td, uap)
if ((error = getvnode(td->td_proc->p_fd, uap->fd, &fp)) != 0)
return (error);
- error = setfflags(td, fp->un_data.vnode, uap->flags);
+ error = setfflags(td, fp->f_data, uap->flags);
fdrop(fp, td);
return (error);
}
@@ -2157,8 +2157,8 @@ fchmod(td, uap)
if ((error = getvnode(td->td_proc->p_fd, uap->fd, &fp)) != 0)
return (error);
- vp = fp->un_data.vnode;
- error = setfmode(td, fp->un_data.vnode, uap->mode);
+ vp = fp->f_data;
+ error = setfmode(td, fp->f_data, uap->mode);
fdrop(fp, td);
return (error);
}
@@ -2301,8 +2301,8 @@ fchown(td, uap)
if ((error = getvnode(td->td_proc->p_fd, uap->fd, &fp)) != 0)
return (error);
- vp = fp->un_data.vnode;
- error = setfown(td, fp->un_data.vnode, uap->uid, uap->gid);
+ vp = fp->f_data;
+ error = setfown(td, fp->f_data, uap->uid, uap->gid);
fdrop(fp, td);
return (error);
}
@@ -2500,7 +2500,7 @@ kern_futimes(struct thread *td, int fd, struct timeval *tptr,
return (error);
if ((error = getvnode(td->td_proc->p_fd, fd, &fp)) != 0)
return (error);
- error = setutimes(td, fp->un_data.vnode, ts, 2, tptr == NULL);
+ error = setutimes(td, fp->f_data, ts, 2, tptr == NULL);
fdrop(fp, td);
return (error);
}
@@ -2602,7 +2602,7 @@ ftruncate(td, uap)
fdrop(fp, td);
return (EINVAL);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) {
fdrop(fp, td);
return (error);
@@ -2713,7 +2713,7 @@ fsync(td, uap)
if ((error = getvnode(td->td_proc->p_fd, uap->fd, &fp)) != 0)
return (error);
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) {
fdrop(fp, td);
return (error);
@@ -3074,7 +3074,7 @@ ogetdirentries(td, uap)
fdrop(fp, td);
return (EBADF);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
unionread:
if (vp->v_type != VDIR) {
fdrop(fp, td);
@@ -3174,7 +3174,7 @@ unionread:
struct vnode *tvp = vp;
vp = vp->v_mount->mnt_vnodecovered;
VREF(vp);
- fp->un_data.vnode = vp;
+ fp->f_data = vp;
fp->f_offset = 0;
vput(tvp);
goto unionread;
@@ -3222,7 +3222,7 @@ getdirentries(td, uap)
fdrop(fp, td);
return (EBADF);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
unionread:
if (vp->v_type != VDIR) {
fdrop(fp, td);
@@ -3271,7 +3271,7 @@ unionread:
struct vnode *tvp = vp;
vp = vp->v_mount->mnt_vnodecovered;
VREF(vp);
- fp->un_data.vnode = vp;
+ fp->f_data = vp;
fp->f_offset = 0;
vput(tvp);
goto unionread;
@@ -3624,7 +3624,7 @@ fhopen(td, uap)
* from under us while we block in the lock op
*/
fhold(fp);
- nfp->un_data.vnode = vp;
+ nfp->f_data = vp;
nfp->f_flag = fmode & FMASK;
nfp->f_ops = &vnops;
nfp->f_type = DTYPE_VNODE;
@@ -3945,7 +3945,7 @@ extattr_set_fd(td, uap)
if (error)
return (error);
- error = extattr_set_vp(fp->un_data.vnode, uap->attrnamespace,
+ error = extattr_set_vp(fp->f_data, uap->attrnamespace,
attrname, uap->data, uap->nbytes, td);
fdrop(fp, td);
@@ -4109,7 +4109,7 @@ extattr_get_fd(td, uap)
if (error)
return (error);
- error = extattr_get_vp(fp->un_data.vnode, uap->attrnamespace,
+ error = extattr_get_vp(fp->f_data, uap->attrnamespace,
attrname, uap->data, uap->nbytes, td);
fdrop(fp, td);
@@ -4241,7 +4241,7 @@ extattr_delete_fd(td, uap)
error = getvnode(td->td_proc->p_fd, uap->fd, &fp);
if (error)
return (error);
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = extattr_delete_vp(vp, uap->attrnamespace, attrname, td);
fdrop(fp, td);
diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
index 0948c31..432ebed 100644
--- a/sys/kern/vfs_syscalls.c
+++ b/sys/kern/vfs_syscalls.c
@@ -278,7 +278,7 @@ fstatfs(td, uap)
if ((error = getvnode(td->td_proc->p_fd, uap->fd, &fp)) != 0)
return (error);
- mp = (fp->un_data.vnode)->v_mount;
+ mp = ((struct vnode *)fp->f_data)->v_mount;
fdrop(fp, td);
if (mp == NULL)
return (EBADF);
@@ -399,7 +399,7 @@ fchdir(td, uap)
if ((error = getvnode(fdp, uap->fd, &fp)) != 0)
return (error);
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
VREF(vp);
fdrop(fp, td);
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
@@ -492,7 +492,7 @@ chroot_refuse_vdir_fds(fdp)
if (fp == NULL)
continue;
if (fp->f_type == DTYPE_VNODE) {
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if (vp->v_type == VDIR)
return (EPERM);
}
@@ -724,7 +724,7 @@ kern_open(struct thread *td, char *path, enum uio_seg pathseg, int flags,
KASSERT(!vn_canvmio(vp) || VOP_GETVOBJECT(vp, NULL) == 0,
("open: vmio vnode has no backing object after vn_open"));
- fp->un_data.vnode = vp;
+ fp->f_data = vp;
fp->f_flag = flags & FMASK;
fp->f_ops = &vnops;
fp->f_type = (vp->v_type == VFIFO ? DTYPE_FIFO : DTYPE_VNODE);
@@ -1319,7 +1319,7 @@ lseek(td, uap)
fdrop(fp, td);
return (ESPIPE);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
noneg = (vp->v_type != VCHR);
offset = uap->offset;
switch (uap->whence) {
@@ -2032,7 +2032,7 @@ fchflags(td, uap)
if ((error = getvnode(td->td_proc->p_fd, uap->fd, &fp)) != 0)
return (error);
- error = setfflags(td, fp->un_data.vnode, uap->flags);
+ error = setfflags(td, fp->f_data, uap->flags);
fdrop(fp, td);
return (error);
}
@@ -2157,8 +2157,8 @@ fchmod(td, uap)
if ((error = getvnode(td->td_proc->p_fd, uap->fd, &fp)) != 0)
return (error);
- vp = fp->un_data.vnode;
- error = setfmode(td, fp->un_data.vnode, uap->mode);
+ vp = fp->f_data;
+ error = setfmode(td, fp->f_data, uap->mode);
fdrop(fp, td);
return (error);
}
@@ -2301,8 +2301,8 @@ fchown(td, uap)
if ((error = getvnode(td->td_proc->p_fd, uap->fd, &fp)) != 0)
return (error);
- vp = fp->un_data.vnode;
- error = setfown(td, fp->un_data.vnode, uap->uid, uap->gid);
+ vp = fp->f_data;
+ error = setfown(td, fp->f_data, uap->uid, uap->gid);
fdrop(fp, td);
return (error);
}
@@ -2500,7 +2500,7 @@ kern_futimes(struct thread *td, int fd, struct timeval *tptr,
return (error);
if ((error = getvnode(td->td_proc->p_fd, fd, &fp)) != 0)
return (error);
- error = setutimes(td, fp->un_data.vnode, ts, 2, tptr == NULL);
+ error = setutimes(td, fp->f_data, ts, 2, tptr == NULL);
fdrop(fp, td);
return (error);
}
@@ -2602,7 +2602,7 @@ ftruncate(td, uap)
fdrop(fp, td);
return (EINVAL);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) {
fdrop(fp, td);
return (error);
@@ -2713,7 +2713,7 @@ fsync(td, uap)
if ((error = getvnode(td->td_proc->p_fd, uap->fd, &fp)) != 0)
return (error);
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) {
fdrop(fp, td);
return (error);
@@ -3074,7 +3074,7 @@ ogetdirentries(td, uap)
fdrop(fp, td);
return (EBADF);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
unionread:
if (vp->v_type != VDIR) {
fdrop(fp, td);
@@ -3174,7 +3174,7 @@ unionread:
struct vnode *tvp = vp;
vp = vp->v_mount->mnt_vnodecovered;
VREF(vp);
- fp->un_data.vnode = vp;
+ fp->f_data = vp;
fp->f_offset = 0;
vput(tvp);
goto unionread;
@@ -3222,7 +3222,7 @@ getdirentries(td, uap)
fdrop(fp, td);
return (EBADF);
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
unionread:
if (vp->v_type != VDIR) {
fdrop(fp, td);
@@ -3271,7 +3271,7 @@ unionread:
struct vnode *tvp = vp;
vp = vp->v_mount->mnt_vnodecovered;
VREF(vp);
- fp->un_data.vnode = vp;
+ fp->f_data = vp;
fp->f_offset = 0;
vput(tvp);
goto unionread;
@@ -3624,7 +3624,7 @@ fhopen(td, uap)
* from under us while we block in the lock op
*/
fhold(fp);
- nfp->un_data.vnode = vp;
+ nfp->f_data = vp;
nfp->f_flag = fmode & FMASK;
nfp->f_ops = &vnops;
nfp->f_type = DTYPE_VNODE;
@@ -3945,7 +3945,7 @@ extattr_set_fd(td, uap)
if (error)
return (error);
- error = extattr_set_vp(fp->un_data.vnode, uap->attrnamespace,
+ error = extattr_set_vp(fp->f_data, uap->attrnamespace,
attrname, uap->data, uap->nbytes, td);
fdrop(fp, td);
@@ -4109,7 +4109,7 @@ extattr_get_fd(td, uap)
if (error)
return (error);
- error = extattr_get_vp(fp->un_data.vnode, uap->attrnamespace,
+ error = extattr_get_vp(fp->f_data, uap->attrnamespace,
attrname, uap->data, uap->nbytes, td);
fdrop(fp, td);
@@ -4241,7 +4241,7 @@ extattr_delete_fd(td, uap)
error = getvnode(td->td_proc->p_fd, uap->fd, &fp);
if (error)
return (error);
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = extattr_delete_vp(vp, uap->attrnamespace, attrname, td);
fdrop(fp, td);
diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c
index 67a4abf..7891dc6 100644
--- a/sys/kern/vfs_vnops.c
+++ b/sys/kern/vfs_vnops.c
@@ -502,7 +502,7 @@ vn_read(fp, uio, active_cred, flags, td)
mtx_lock(&Giant);
KASSERT(uio->uio_td == td, ("uio_td %p is not td %p",
uio->uio_td, td));
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
ioflag = 0;
if (fp->f_flag & FNONBLOCK)
ioflag |= IO_NDELAY;
@@ -550,7 +550,7 @@ vn_write(fp, uio, active_cred, flags, td)
mtx_lock(&Giant);
KASSERT(uio->uio_td == td, ("uio_td %p is not td %p",
uio->uio_td, td));
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if (vp->v_type == VREG)
bwillwrite();
ioflag = IO_UNIT;
@@ -598,7 +598,7 @@ vn_statfile(fp, sb, active_cred, td)
struct ucred *active_cred;
struct thread *td;
{
- struct vnode *vp = fp->un_data.vnode;
+ struct vnode *vp = fp->f_data;
int error;
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
@@ -741,7 +741,7 @@ vn_ioctl(fp, com, data, active_cred, td)
struct ucred *active_cred;
struct thread *td;
{
- struct vnode *vp = fp->un_data.vnode;
+ struct vnode *vp = fp->f_data;
struct vnode *vpold;
struct vattr vattr;
int error;
@@ -823,7 +823,7 @@ vn_poll(fp, events, active_cred, td)
int error;
#endif
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
#ifdef MAC
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
error = mac_check_vnode_poll(active_cred, fp->f_cred, vp);
@@ -891,7 +891,7 @@ vn_closefile(fp, td)
{
fp->f_ops = &badfileops;
- return (vn_close(fp->un_data.vnode, fp->f_flag, fp->f_cred, td));
+ return (vn_close(fp->f_data, fp->f_flag, fp->f_cred, td));
}
/*
@@ -1042,7 +1042,7 @@ static int
vn_kqfilter(struct file *fp, struct knote *kn)
{
- return (VOP_KQFILTER(fp->un_data.vnode, kn));
+ return (VOP_KQFILTER(fp->f_data, kn));
}
/*
diff --git a/sys/netgraph/ng_socket.c b/sys/netgraph/ng_socket.c
index 902dd54..f841a0e 100644
--- a/sys/netgraph/ng_socket.c
+++ b/sys/netgraph/ng_socket.c
@@ -601,7 +601,7 @@ ng_internalize(struct mbuf *control, struct thread *td)
* shortcut straight to the node. */
switch (fp->f_type) {
case DTYPE_VNODE:
- vn = fp->un_data.vnode;
+ vn = fp->f_data;
if (vn && (vn->v_type == VCHR)) {
/* for a VCHR, actually reference the FILE */
fp->f_count++;
diff --git a/sys/netsmb/smb_dev.c b/sys/netsmb/smb_dev.c
index 0500c62..3f22b16 100644
--- a/sys/netsmb/smb_dev.c
+++ b/sys/netsmb/smb_dev.c
@@ -420,7 +420,7 @@ smb_dev2share(int fd, int mode, struct smb_cred *scred,
fp = nsmb_getfp(scred->scr_td->td_proc->p_fd, fd, FREAD | FWRITE);
if (fp == NULL)
return EBADF;
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
if (vp == NULL) {
fdrop(fp, curthread);
return EBADF;
diff --git a/sys/nfsserver/nfs_syscalls.c b/sys/nfsserver/nfs_syscalls.c
index 42baaa0..cf9bf90 100644
--- a/sys/nfsserver/nfs_syscalls.c
+++ b/sys/nfsserver/nfs_syscalls.c
@@ -200,7 +200,7 @@ nfssvc_addsock(struct file *fp, struct sockaddr *mynam, struct thread *td)
struct socket *so;
int error, s;
- so = fp->un_data.socket;
+ so = fp->f_data;
#if 0
tslp = NULL;
/*
diff --git a/sys/opencrypto/cryptodev.c b/sys/opencrypto/cryptodev.c
index 07ea04f..8b51d69 100644
--- a/sys/opencrypto/cryptodev.c
+++ b/sys/opencrypto/cryptodev.c
@@ -134,7 +134,7 @@ cryptof_ioctl(
struct thread *td)
{
struct cryptoini cria, crie;
- struct fcrypt *fcr = fp->un_data.fcrypt;
+ struct fcrypt *fcr = fp->f_data;
struct csession *cse;
struct session_op *sop;
struct crypt_op *cop;
@@ -608,7 +608,7 @@ cryptof_stat(
static int
cryptof_close(struct file *fp, struct thread *td)
{
- struct fcrypt *fcr = fp->un_data.fcrypt;
+ struct fcrypt *fcr = fp->f_data;
struct csession *cse;
while ((cse = TAILQ_FIRST(&fcr->csessions))) {
@@ -616,7 +616,7 @@ cryptof_close(struct file *fp, struct thread *td)
(void)csefree(cse);
}
FREE(fcr, M_XDATA);
- fp->un_data.fcrypt = NULL;
+ fp->f_data = NULL;
return 0;
}
@@ -733,7 +733,7 @@ cryptoioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct thread *td)
f->f_flag = FREAD | FWRITE;
f->f_type = DTYPE_CRYPTO;
f->f_ops = &cryptofops;
- f->un_data.fcrypt = fcr;
+ f->f_data = fcr;
*(u_int32_t *)data = fd;
fdrop(f, td);
break;
diff --git a/sys/security/mac/mac_framework.c b/sys/security/mac/mac_framework.c
index 299ad50..e9d9eeb 100644
--- a/sys/security/mac/mac_framework.c
+++ b/sys/security/mac/mac_framework.c
@@ -3211,7 +3211,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
switch (fp->f_type) {
case DTYPE_FIFO:
case DTYPE_VNODE:
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
mac_init_vnode_label(&intlabel);
@@ -3221,7 +3221,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
break;
case DTYPE_PIPE:
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
mac_init_pipe_label(&intlabel);
@@ -3419,7 +3419,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
break;
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
if (error != 0) {
mac_destroy_vnode_label(&intlabel);
@@ -3438,7 +3438,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
mac_init_pipe_label(&intlabel);
error = mac_internalize_pipe_label(&intlabel, buffer);
if (error == 0) {
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
PIPE_LOCK(pipe);
error = mac_pipe_label_set(td->td_ucred, pipe,
&intlabel);
diff --git a/sys/security/mac/mac_internal.h b/sys/security/mac/mac_internal.h
index 299ad50..e9d9eeb 100644
--- a/sys/security/mac/mac_internal.h
+++ b/sys/security/mac/mac_internal.h
@@ -3211,7 +3211,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
switch (fp->f_type) {
case DTYPE_FIFO:
case DTYPE_VNODE:
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
mac_init_vnode_label(&intlabel);
@@ -3221,7 +3221,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
break;
case DTYPE_PIPE:
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
mac_init_pipe_label(&intlabel);
@@ -3419,7 +3419,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
break;
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
if (error != 0) {
mac_destroy_vnode_label(&intlabel);
@@ -3438,7 +3438,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
mac_init_pipe_label(&intlabel);
error = mac_internalize_pipe_label(&intlabel, buffer);
if (error == 0) {
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
PIPE_LOCK(pipe);
error = mac_pipe_label_set(td->td_ucred, pipe,
&intlabel);
diff --git a/sys/security/mac/mac_net.c b/sys/security/mac/mac_net.c
index 299ad50..e9d9eeb 100644
--- a/sys/security/mac/mac_net.c
+++ b/sys/security/mac/mac_net.c
@@ -3211,7 +3211,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
switch (fp->f_type) {
case DTYPE_FIFO:
case DTYPE_VNODE:
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
mac_init_vnode_label(&intlabel);
@@ -3221,7 +3221,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
break;
case DTYPE_PIPE:
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
mac_init_pipe_label(&intlabel);
@@ -3419,7 +3419,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
break;
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
if (error != 0) {
mac_destroy_vnode_label(&intlabel);
@@ -3438,7 +3438,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
mac_init_pipe_label(&intlabel);
error = mac_internalize_pipe_label(&intlabel, buffer);
if (error == 0) {
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
PIPE_LOCK(pipe);
error = mac_pipe_label_set(td->td_ucred, pipe,
&intlabel);
diff --git a/sys/security/mac/mac_pipe.c b/sys/security/mac/mac_pipe.c
index 299ad50..e9d9eeb 100644
--- a/sys/security/mac/mac_pipe.c
+++ b/sys/security/mac/mac_pipe.c
@@ -3211,7 +3211,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
switch (fp->f_type) {
case DTYPE_FIFO:
case DTYPE_VNODE:
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
mac_init_vnode_label(&intlabel);
@@ -3221,7 +3221,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
break;
case DTYPE_PIPE:
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
mac_init_pipe_label(&intlabel);
@@ -3419,7 +3419,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
break;
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
if (error != 0) {
mac_destroy_vnode_label(&intlabel);
@@ -3438,7 +3438,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
mac_init_pipe_label(&intlabel);
error = mac_internalize_pipe_label(&intlabel, buffer);
if (error == 0) {
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
PIPE_LOCK(pipe);
error = mac_pipe_label_set(td->td_ucred, pipe,
&intlabel);
diff --git a/sys/security/mac/mac_process.c b/sys/security/mac/mac_process.c
index 299ad50..e9d9eeb 100644
--- a/sys/security/mac/mac_process.c
+++ b/sys/security/mac/mac_process.c
@@ -3211,7 +3211,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
switch (fp->f_type) {
case DTYPE_FIFO:
case DTYPE_VNODE:
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
mac_init_vnode_label(&intlabel);
@@ -3221,7 +3221,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
break;
case DTYPE_PIPE:
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
mac_init_pipe_label(&intlabel);
@@ -3419,7 +3419,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
break;
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
if (error != 0) {
mac_destroy_vnode_label(&intlabel);
@@ -3438,7 +3438,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
mac_init_pipe_label(&intlabel);
error = mac_internalize_pipe_label(&intlabel, buffer);
if (error == 0) {
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
PIPE_LOCK(pipe);
error = mac_pipe_label_set(td->td_ucred, pipe,
&intlabel);
diff --git a/sys/security/mac/mac_syscalls.c b/sys/security/mac/mac_syscalls.c
index 299ad50..e9d9eeb 100644
--- a/sys/security/mac/mac_syscalls.c
+++ b/sys/security/mac/mac_syscalls.c
@@ -3211,7 +3211,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
switch (fp->f_type) {
case DTYPE_FIFO:
case DTYPE_VNODE:
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
mac_init_vnode_label(&intlabel);
@@ -3221,7 +3221,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
break;
case DTYPE_PIPE:
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
mac_init_pipe_label(&intlabel);
@@ -3419,7 +3419,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
break;
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
if (error != 0) {
mac_destroy_vnode_label(&intlabel);
@@ -3438,7 +3438,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
mac_init_pipe_label(&intlabel);
error = mac_internalize_pipe_label(&intlabel, buffer);
if (error == 0) {
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
PIPE_LOCK(pipe);
error = mac_pipe_label_set(td->td_ucred, pipe,
&intlabel);
diff --git a/sys/security/mac/mac_system.c b/sys/security/mac/mac_system.c
index 299ad50..e9d9eeb 100644
--- a/sys/security/mac/mac_system.c
+++ b/sys/security/mac/mac_system.c
@@ -3211,7 +3211,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
switch (fp->f_type) {
case DTYPE_FIFO:
case DTYPE_VNODE:
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
mac_init_vnode_label(&intlabel);
@@ -3221,7 +3221,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
break;
case DTYPE_PIPE:
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
mac_init_pipe_label(&intlabel);
@@ -3419,7 +3419,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
break;
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
if (error != 0) {
mac_destroy_vnode_label(&intlabel);
@@ -3438,7 +3438,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
mac_init_pipe_label(&intlabel);
error = mac_internalize_pipe_label(&intlabel, buffer);
if (error == 0) {
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
PIPE_LOCK(pipe);
error = mac_pipe_label_set(td->td_ucred, pipe,
&intlabel);
diff --git a/sys/security/mac/mac_vfs.c b/sys/security/mac/mac_vfs.c
index 299ad50..e9d9eeb 100644
--- a/sys/security/mac/mac_vfs.c
+++ b/sys/security/mac/mac_vfs.c
@@ -3211,7 +3211,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
switch (fp->f_type) {
case DTYPE_FIFO:
case DTYPE_VNODE:
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
mac_init_vnode_label(&intlabel);
@@ -3221,7 +3221,7 @@ __mac_get_fd(struct thread *td, struct __mac_get_fd_args *uap)
break;
case DTYPE_PIPE:
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
mac_init_pipe_label(&intlabel);
@@ -3419,7 +3419,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
break;
}
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = vn_start_write(vp, &mp, V_WAIT | PCATCH);
if (error != 0) {
mac_destroy_vnode_label(&intlabel);
@@ -3438,7 +3438,7 @@ __mac_set_fd(struct thread *td, struct __mac_set_fd_args *uap)
mac_init_pipe_label(&intlabel);
error = mac_internalize_pipe_label(&intlabel, buffer);
if (error == 0) {
- pipe = fp->un_data.pipe;
+ pipe = fp->f_data;
PIPE_LOCK(pipe);
error = mac_pipe_label_set(td->td_ucred, pipe,
&intlabel);
diff --git a/sys/sys/file.h b/sys/sys/file.h
index 0478104..2ee3a188 100644
--- a/sys/sys/file.h
+++ b/sys/sys/file.h
@@ -52,10 +52,6 @@ struct uio;
struct knote;
struct vnode;
struct socket;
-struct kqueue;
-struct pipe;
-struct fcrypt;
-struct vm_object;
#endif /* _KERNEL */
@@ -122,15 +118,7 @@ struct file {
* offset of next expected read or write
*/
off_t f_offset;
- union { /* file descriptor specific data */
- void *generic;
- struct vnode *vnode;
- struct socket *socket;
- struct kqueue *kqueue;
- struct pipe *pipe;
- struct fcrypt *fcrypt;
- struct vm_object *object;
- } un_data;
+ void *f_data; /* file descriptor specific data */
u_int f_flag; /* see fcntl.h */
struct mtx *f_mtxp; /* mutex to protect data */
};
@@ -150,15 +138,7 @@ struct xfile {
int xf_count; /* reference count */
int xf_msgcount; /* references from message queue */
off_t xf_offset; /* file offset */
- union {
- void *generic;
- struct vnode *vnode;
- struct socket *socket;
- struct kqueue *kqueue;
- struct pipe *pipe;
- struct fcrypt *fcrypt;
- struct vm_object *object;
- } xun_data;
+ void *xf_data; /* file descriptor specific data */
u_int xf_flag; /* flags (see fcntl.h) */
};
diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c
index d73b9ad..ba7ac57 100644
--- a/sys/ufs/ffs/ffs_alloc.c
+++ b/sys/ufs/ffs/ffs_alloc.c
@@ -2184,7 +2184,7 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS)
return (ERPCMISMATCH);
if ((error = getvnode(curproc->p_fd, cmd.handle, &fp)) != 0)
return (error);
- vn_start_write(fp->un_data.vnode, &mp, V_WAIT);
+ vn_start_write(fp->f_data, &mp, V_WAIT);
if (mp == 0 || strncmp(mp->mnt_stat.f_fstypename, "ufs", MFSNAMELEN)) {
vn_finished_write(mp);
fdrop(fp, curthread);
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c
index 8462550..7aff717 100644
--- a/sys/vm/vm_mmap.c
+++ b/sys/vm/vm_mmap.c
@@ -309,7 +309,7 @@ mmap(td, uap)
*/
if (fp->f_flag & FPOSIXSHM)
flags |= MAP_NOSYNC;
- vp = fp->un_data.vnode;
+ vp = fp->f_data;
error = vget(vp, LK_EXCLUSIVE, td);
if (error)
goto done;
diff --git a/usr.bin/fstat/fstat.c b/usr.bin/fstat/fstat.c
index d41011a..cb002ee 100644
--- a/usr.bin/fstat/fstat.c
+++ b/usr.bin/fstat/fstat.c
@@ -381,21 +381,21 @@ dofiles(kp)
continue;
}
if (file.f_type == DTYPE_VNODE)
- vtrans(file.un_data.vnode, i, file.f_flag);
+ vtrans(file.f_data, i, file.f_flag);
else if (file.f_type == DTYPE_SOCKET) {
if (checkfile == 0)
- socktrans(file.un_data.socket, i);
+ socktrans(file.f_data, i);
}
#ifdef DTYPE_PIPE
else if (file.f_type == DTYPE_PIPE) {
if (checkfile == 0)
- pipetrans(file.un_data.pipe, i, file.f_flag);
+ pipetrans(file.f_data, i, file.f_flag);
}
#endif
#ifdef DTYPE_FIFO
else if (file.f_type == DTYPE_FIFO) {
if (checkfile == 0)
- vtrans(file.un_data.vnode, i, file.f_flag);
+ vtrans(file.f_data, i, file.f_flag);
}
#endif
else {
diff --git a/usr.bin/sockstat/sockstat.c b/usr.bin/sockstat/sockstat.c
index b7b22ec..e6c7c26 100644
--- a/usr.bin/sockstat/sockstat.c
+++ b/usr.bin/sockstat/sockstat.c
@@ -470,9 +470,9 @@ display(void)
"LOCAL ADDRESS", "FOREIGN ADDRESS");
setpassent(1);
for (xf = xfiles, n = 0; n < nxfiles; ++n, ++xf) {
- hash = (int)((uintptr_t)xf->xun_data.generic % HASHSIZE);
+ hash = (int)((uintptr_t)xf->xf_data % HASHSIZE);
for (s = sockhash[hash]; s != NULL; s = s->next)
- if (s->socket == xf->xun_data.socket)
+ if ((void *)s->socket == xf->xf_data)
break;
if (s == NULL)
continue;
diff --git a/usr.sbin/pstat/pstat.c b/usr.sbin/pstat/pstat.c
index 989145f..e6a3f2b 100644
--- a/usr.sbin/pstat/pstat.c
+++ b/usr.sbin/pstat/pstat.c
@@ -418,7 +418,7 @@ filemode(void)
*fbp = '\0';
(void)printf("%6s %3d", flagbuf, fp->xf_count);
(void)printf(" %3d", fp->xf_msgcount);
- (void)printf(" %8lx", (u_long)fp->xun_data.generic);
+ (void)printf(" %p", fp->xf_data);
(void)printf(" %jx\n", (uintmax_t)fp->xf_offset);
}
free(buf);
OpenPOWER on IntegriCloud