projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
expand parameters to functions; READDIR drops eofflag;
[unix-history]
/
usr
/
src
/
sys
/
ufs
/
ffs
/
ufs_vnops.c
diff --git
a/usr/src/sys/ufs/ffs/ufs_vnops.c
b/usr/src/sys/ufs/ffs/ufs_vnops.c
index
69cfb7b
..
b4fb50b
100644
(file)
--- a/
usr/src/sys/ufs/ffs/ufs_vnops.c
+++ b/
usr/src/sys/ufs/ffs/ufs_vnops.c
@@
-4,7
+4,7
@@
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)ufs_vnops.c 7.9
8
(Berkeley) %G%
+ * @(#)ufs_vnops.c 7.9
9
(Berkeley) %G%
*/
#include <sys/param.h>
*/
#include <sys/param.h>
@@
-58,7
+58,12
@@
union _qcvt {
*/
int
ufs_create(ap)
*/
int
ufs_create(ap)
- struct vop_create_args *ap;
+ struct vop_create_args /* {
+ struct vnode *a_dvp;
+ struct vnode **a_vpp;
+ struct componentname *a_cnp;
+ struct vattr *a_vap;
+ } */ *ap;
{
int error;
{
int error;
@@
-75,7
+80,12
@@
ufs_create(ap)
/* ARGSUSED */
int
ufs_mknod(ap)
/* ARGSUSED */
int
ufs_mknod(ap)
- struct vop_mknod_args *ap;
+ struct vop_mknod_args /* {
+ struct vnode *a_dvp;
+ struct vnode **a_vpp;
+ struct componentname *a_cnp;
+ struct vattr *a_vap;
+ } */ *ap;
{
register struct vattr *vap = ap->a_vap;
register struct vnode **vpp = ap->a_vpp;
{
register struct vattr *vap = ap->a_vap;
register struct vnode **vpp = ap->a_vpp;
@@
-115,7
+125,12
@@
ufs_mknod(ap)
/* ARGSUSED */
int
ufs_open(ap)
/* ARGSUSED */
int
ufs_open(ap)
- struct vop_open_args *ap;
+ struct vop_open_args /* {
+ struct vnode *a_vp;
+ int a_mode;
+ struct ucred *a_cred;
+ struct proc *a_p;
+ } */ *ap;
{
return (0);
{
return (0);
@@
-129,7
+144,12
@@
ufs_open(ap)
/* ARGSUSED */
int
ufs_close(ap)
/* ARGSUSED */
int
ufs_close(ap)
- struct vop_close_args *ap;
+ struct vop_close_args /* {
+ struct vnode *a_vp;
+ int a_fflag;
+ struct ucred *a_cred;
+ struct proc *a_p;
+ } */ *ap;
{
register struct vnode *vp = ap->a_vp;
register struct inode *ip = VTOI(vp);
{
register struct vnode *vp = ap->a_vp;
register struct inode *ip = VTOI(vp);
@@
-146,7
+166,12
@@
ufs_close(ap)
*/
int
ufs_access(ap)
*/
int
ufs_access(ap)
- struct vop_access_args *ap;
+ struct vop_access_args /* {
+ struct vnode *a_vp;
+ int a_mode;
+ struct ucred *a_cred;
+ struct proc *a_p;
+ } */ *ap;
{
USES_VOP_ISLOCKED;
register struct vnode *vp = ap->a_vp;
{
USES_VOP_ISLOCKED;
register struct vnode *vp = ap->a_vp;
@@
-199,7
+224,12
@@
found:
/* ARGSUSED */
int
ufs_getattr(ap)
/* ARGSUSED */
int
ufs_getattr(ap)
- struct vop_getattr_args *ap;
+ struct vop_getattr_args /* {
+ struct vnode *a_vp;
+ struct vattr *a_vap;
+ struct ucred *a_cred;
+ struct proc *a_p;
+ } */ *ap;
{
register struct vnode *vp = ap->a_vp;
register struct inode *ip = VTOI(vp);
{
register struct vnode *vp = ap->a_vp;
register struct inode *ip = VTOI(vp);
@@
-240,7
+270,12
@@
ufs_getattr(ap)
*/
int
ufs_setattr(ap)
*/
int
ufs_setattr(ap)
- struct vop_setattr_args *ap;
+ struct vop_setattr_args /* {
+ struct vnode *a_vp;
+ struct vattr *a_vap;
+ struct ucred *a_cred;
+ struct proc *a_p;
+ } */ *ap;
{
USES_VOP_TRUNCATE;
USES_VOP_UPDATE;
{
USES_VOP_TRUNCATE;
USES_VOP_UPDATE;
@@
-270,7
+305,7
@@
ufs_setattr(ap)
if (vap->va_size != VNOVAL) {
if (vp->v_type == VDIR)
return (EISDIR);
if (vap->va_size != VNOVAL) {
if (vp->v_type == VDIR)
return (EISDIR);
- if (error = VOP_TRUNCATE(vp, vap->va_size, 0, cred))
+ if (error = VOP_TRUNCATE(vp, vap->va_size, 0, cred
, p
))
return (error);
}
ip = VTOI(vp);
return (error);
}
ip = VTOI(vp);
@@
-449,7
+484,14
@@
good:
/* ARGSUSED */
int
ufs_ioctl(ap)
/* ARGSUSED */
int
ufs_ioctl(ap)
- struct vop_ioctl_args *ap;
+ struct vop_ioctl_args /* {
+ struct vnode *a_vp;
+ int a_command;
+ caddr_t a_data;
+ int a_fflag;
+ struct ucred *a_cred;
+ struct proc *a_p;
+ } */ *ap;
{
return (ENOTTY);
{
return (ENOTTY);
@@
-458,7
+500,13
@@
ufs_ioctl(ap)
/* ARGSUSED */
int
ufs_select(ap)
/* ARGSUSED */
int
ufs_select(ap)
- struct vop_select_args *ap;
+ struct vop_select_args /* {
+ struct vnode *a_vp;
+ int a_which;
+ int a_fflags;
+ struct ucred *a_cred;
+ struct proc *a_p;
+ } */ *ap;
{
/*
{
/*
@@
-475,7
+523,12
@@
ufs_select(ap)
/* ARGSUSED */
int
ufs_mmap(ap)
/* ARGSUSED */
int
ufs_mmap(ap)
- struct vop_mmap_args *ap;
+ struct vop_mmap_args /* {
+ struct vnode *a_vp;
+ int a_fflags;
+ struct ucred *a_cred;
+ struct proc *a_p;
+ } */ *ap;
{
return (EINVAL);
{
return (EINVAL);
@@
-489,7
+542,12
@@
ufs_mmap(ap)
/* ARGSUSED */
int
ufs_seek(ap)
/* ARGSUSED */
int
ufs_seek(ap)
- struct vop_seek_args *ap;
+ struct vop_seek_args /* {
+ struct vnode *a_vp;
+ off_t a_oldoff;
+ off_t a_newoff;
+ struct ucred *a_cred;
+ } */ *ap;
{
return (0);
{
return (0);
@@
-502,7
+560,11
@@
ufs_seek(ap)
*/
int
ufs_remove(ap)
*/
int
ufs_remove(ap)
- struct vop_remove_args *ap;
+ struct vop_remove_args /* {
+ struct vnode *a_dvp;
+ struct vnode *a_vp;
+ struct componentname *a_cnp;
+ } */ *ap;
{
register struct inode *ip, *dp;
int error;
{
register struct inode *ip, *dp;
int error;
@@
-527,7
+589,11
@@
ufs_remove(ap)
*/
int
ufs_link(ap)
*/
int
ufs_link(ap)
- struct vop_link_args *ap;
+ struct vop_link_args /* {
+ struct vnode *a_vp;
+ struct vnode *a_tdvp;
+ struct componentname *a_cnp;
+ } */ *ap;
{
USES_VOP_UPDATE;
USES_VOP_ABORTOP;
{
USES_VOP_UPDATE;
USES_VOP_ABORTOP;
@@
-758,7
+824,14
@@
bad:
*/
int
ufs_rename(ap)
*/
int
ufs_rename(ap)
- struct vop_rename_args *ap;
+ struct vop_rename_args /* {
+ struct vnode *a_fdvp;
+ struct vnode *a_fvp;
+ struct componentname *a_fcnp;
+ struct vnode *a_tdvp;
+ struct vnode *a_tvp;
+ struct componentname *a_tcnp;
+ } */ *ap;
{
USES_VOP_ABORTOP;
USES_VOP_ACCESS;
{
USES_VOP_ABORTOP;
USES_VOP_ACCESS;
@@
-993,7
+1066,7
@@
ufs_rename(ap)
if (--xp->i_nlink != 0)
panic("rename: linked directory");
error = VOP_TRUNCATE(ITOV(xp), (off_t)0, IO_SYNC,
if (--xp->i_nlink != 0)
panic("rename: linked directory");
error = VOP_TRUNCATE(ITOV(xp), (off_t)0, IO_SYNC,
- tcnp->cn_cred);
+ tcnp->cn_cred
, tcnp->cn_proc
);
}
xp->i_flag |= ICHG;
ufs_iput(xp);
}
xp->i_flag |= ICHG;
ufs_iput(xp);
@@
-1106,9
+1179,13
@@
static struct dirtemplate mastertemplate = {
*/
int
ufs_mkdir(ap)
*/
int
ufs_mkdir(ap)
- struct vop_mkdir_args *ap;
+ struct vop_mkdir_args /* {
+ struct vnode *a_dvp;
+ struct vnode **a_vpp;
+ struct componentname *a_cnp;
+ struct vattr *a_vap;
+ } */ *ap;
{
{
- USES_VOP_TRUNCATE;
USES_VOP_UPDATE;
USES_VOP_VALLOC;
USES_VOP_VFREE;
USES_VOP_UPDATE;
USES_VOP_VALLOC;
USES_VOP_VFREE;
@@
-1218,7
+1295,12
@@
bad:
*/
int
ufs_rmdir(ap)
*/
int
ufs_rmdir(ap)
- struct vop_rmdir_args *ap;
+ struct vop_rmdir_args /* {
+ struct vnodeop_desc *a_desc;
+ struct vnode *a_dvp;
+ struct vnode *a_vp;
+ struct componentname *a_cnp;
+ } */ *ap;
{
USES_VOP_TRUNCATE;
register struct vnode *dvp = ap->a_dvp;
{
USES_VOP_TRUNCATE;
register struct vnode *dvp = ap->a_dvp;
@@
-1273,7
+1355,8
@@
ufs_rmdir(ap)
* worry about them later.
*/
ip->i_nlink -= 2;
* worry about them later.
*/
ip->i_nlink -= 2;
- error = VOP_TRUNCATE(ap->a_vp, (off_t)0, IO_SYNC, cnp->cn_cred);
+ error = VOP_TRUNCATE(ap->a_vp, (off_t)0, IO_SYNC, cnp->cn_cred,
+ cnp->cn_proc);
cache_purge(ITOV(ip));
out:
if (dvp)
cache_purge(ITOV(ip));
out:
if (dvp)
@@
-1287,7
+1370,13
@@
out:
*/
int
ufs_symlink(ap)
*/
int
ufs_symlink(ap)
- struct vop_symlink_args *ap;
+ struct vop_symlink_args /* {
+ struct vnode *a_dvp;
+ struct vnode **a_vpp;
+ struct componentname *a_cnp;
+ struct vattr *a_vap;
+ char *a_target;
+ } */ *ap;
{
register struct vnode *vp, **vpp = ap->a_vpp;
register struct inode *ip;
{
register struct vnode *vp, **vpp = ap->a_vpp;
register struct inode *ip;
@@
-1322,7
+1411,11
@@
ufs_symlink(ap)
*/
int
ufs_readdir(ap)
*/
int
ufs_readdir(ap)
- struct vop_readdir_args *ap;
+ struct vop_readdir_args /* {
+ struct vnode *a_vp;
+ struct uio *a_uio;
+ struct ucred *a_cred;
+ } */ *ap;
{
USES_VOP_READ;
register struct uio *uio = ap->a_uio;
{
USES_VOP_READ;
register struct uio *uio = ap->a_uio;
@@
-1337,10
+1430,6
@@
ufs_readdir(ap)
uio->uio_iov->iov_len = count;
error = VOP_READ(ap->a_vp, uio, 0, ap->a_cred);
uio->uio_resid += lost;
uio->uio_iov->iov_len = count;
error = VOP_READ(ap->a_vp, uio, 0, ap->a_cred);
uio->uio_resid += lost;
- if ((VTOI(ap->a_vp)->i_size - uio->uio_offset) <= 0)
- *ap->a_eofflagp = 1;
- else
- *ap->a_eofflagp = 0;
return (error);
}
return (error);
}
@@
-1349,7
+1438,11
@@
ufs_readdir(ap)
*/
int
ufs_readlink(ap)
*/
int
ufs_readlink(ap)
- struct vop_readlink_args *ap;
+ struct vop_readlink_args /* {
+ struct vnode *a_vp;
+ struct uio *a_uio;
+ struct ucred *a_cred;
+ } */ *ap;
{
register struct vnode *vp = ap->a_vp;
register struct inode *ip = VTOI(vp);
{
register struct vnode *vp = ap->a_vp;
register struct inode *ip = VTOI(vp);
@@
-1369,7
+1462,10
@@
ufs_readlink(ap)
/* ARGSUSED */
int
ufs_abortop(ap)
/* ARGSUSED */
int
ufs_abortop(ap)
- struct vop_abortop_args *ap;
+ struct vop_abortop_args /* {
+ struct vnode *a_dvp;
+ struct componentname *a_cnp;
+ } */ *ap;
{
if ((ap->a_cnp->cn_flags & (HASBUF | SAVESTART)) == HASBUF)
FREE(ap->a_cnp->cn_pnbuf, M_NAMEI);
{
if ((ap->a_cnp->cn_flags & (HASBUF | SAVESTART)) == HASBUF)
FREE(ap->a_cnp->cn_pnbuf, M_NAMEI);
@@
-1381,7
+1477,9
@@
ufs_abortop(ap)
*/
int
ufs_lock(ap)
*/
int
ufs_lock(ap)
- struct vop_lock_args *ap;
+ struct vop_lock_args /* {
+ struct vnode *a_vp;
+ } */ *ap;
{
register struct inode *ip = VTOI(ap->a_vp);
{
register struct inode *ip = VTOI(ap->a_vp);
@@
-1394,7
+1492,9
@@
ufs_lock(ap)
*/
int
ufs_unlock(ap)
*/
int
ufs_unlock(ap)
- struct vop_unlock_args *ap;
+ struct vop_unlock_args /* {
+ struct vnode *a_vp;
+ } */ *ap;
{
register struct inode *ip = VTOI(ap->a_vp);
{
register struct inode *ip = VTOI(ap->a_vp);
@@
-1409,7
+1509,9
@@
ufs_unlock(ap)
*/
int
ufs_islocked(ap)
*/
int
ufs_islocked(ap)
- struct vop_islocked_args *ap;
+ struct vop_islocked_args /* {
+ struct vnode *a_vp;
+ } */ *ap;
{
if (VTOI(ap->a_vp)->i_flag & ILOCKED)
{
if (VTOI(ap->a_vp)->i_flag & ILOCKED)
@@
-1423,7
+1525,9
@@
ufs_islocked(ap)
*/
int
ufs_strategy(ap)
*/
int
ufs_strategy(ap)
- struct vop_strategy_args *ap;
+ struct vop_strategy_args /* {
+ struct buf *a_bp;
+ } */ *ap;
{
USES_VOP_BMAP;
register struct buf *bp = ap->a_bp;
{
USES_VOP_BMAP;
register struct buf *bp = ap->a_bp;
@@
-1460,7
+1564,9
@@
ufs_strategy(ap)
*/
int
ufs_print(ap)
*/
int
ufs_print(ap)
- struct vop_print_args *ap;
+ struct vop_print_args /* {
+ struct vnode *a_vp;
+ } */ *ap;
{
register struct vnode *vp = ap->a_vp;
register struct inode *ip = VTOI(vp);
{
register struct vnode *vp = ap->a_vp;
register struct inode *ip = VTOI(vp);
@@
-1486,7
+1592,12
@@
ufs_print(ap)
*/
int
ufsspec_read(ap)
*/
int
ufsspec_read(ap)
- struct vop_read_args *ap;
+ struct vop_read_args /* {
+ struct vnode *a_vp;
+ struct uio *a_uio;
+ int a_ioflag;
+ struct ucred *a_cred;
+ } */ *ap;
{
extern int (**spec_vnodeop_p)();
{
extern int (**spec_vnodeop_p)();
@@
-1502,7
+1613,12
@@
ufsspec_read(ap)
*/
int
ufsspec_write(ap)
*/
int
ufsspec_write(ap)
- struct vop_write_args *ap;
+ struct vop_write_args /* {
+ struct vnode *a_vp;
+ struct uio *a_uio;
+ int a_ioflag;
+ struct ucred *a_cred;
+ } */ *ap;
{
extern int (**spec_vnodeop_p)();
{
extern int (**spec_vnodeop_p)();
@@
-1520,7
+1636,12
@@
ufsspec_write(ap)
*/
int
ufsspec_close(ap)
*/
int
ufsspec_close(ap)
- struct vop_close_args *ap;
+ struct vop_close_args /* {
+ struct vnode *a_vp;
+ int a_fflag;
+ struct ucred *a_cred;
+ struct proc *a_p;
+ } */ *ap;
{
extern int (**spec_vnodeop_p)();
register struct inode *ip = VTOI(ap->a_vp);
{
extern int (**spec_vnodeop_p)();
register struct inode *ip = VTOI(ap->a_vp);
@@
-1536,7
+1657,12
@@
ufsspec_close(ap)
*/
int
ufsfifo_read(ap)
*/
int
ufsfifo_read(ap)
- struct vop_read_args *ap;
+ struct vop_read_args /* {
+ struct vnode *a_vp;
+ struct uio *a_uio;
+ int a_ioflag;
+ struct ucred *a_cred;
+ } */ *ap;
{
extern int (**fifo_vnodeop_p)();
{
extern int (**fifo_vnodeop_p)();
@@
-1552,7
+1678,12
@@
ufsfifo_read(ap)
*/
int
ufsfifo_write(ap)
*/
int
ufsfifo_write(ap)
- struct vop_write_args *ap;
+ struct vop_write_args /* {
+ struct vnode *a_vp;
+ struct uio *a_uio;
+ int a_ioflag;
+ struct ucred *a_cred;
+ } */ *ap;
{
extern int (**fifo_vnodeop_p)();
{
extern int (**fifo_vnodeop_p)();
@@
-1569,7
+1700,12
@@
ufsfifo_write(ap)
* Update the times on the inode then do device close.
*/
ufsfifo_close(ap)
* Update the times on the inode then do device close.
*/
ufsfifo_close(ap)
- struct vop_close_args *ap;
+ struct vop_close_args /* {
+ struct vnode *a_vp;
+ int a_fflag;
+ struct ucred *a_cred;
+ struct proc *a_p;
+ } */ *ap;
{
extern int (**fifo_vnodeop_p)();
register struct inode *ip = VTOI(ap->a_vp);
{
extern int (**fifo_vnodeop_p)();
register struct inode *ip = VTOI(ap->a_vp);
@@
-1585,7
+1721,13
@@
ufsfifo_close(ap)
*/
int
ufs_advlock(ap)
*/
int
ufs_advlock(ap)
- struct vop_advlock_args *ap;
+ struct vop_advlock_args /* {
+ struct vnode *a_vp;
+ caddr_t a_id;
+ int a_op;
+ struct flock *a_fl;
+ int a_flags;
+ } */ *ap;
{
register struct inode *ip = VTOI(ap->a_vp);
register struct flock *fl = ap->a_fl;
{
register struct inode *ip = VTOI(ap->a_vp);
register struct flock *fl = ap->a_fl;