Turn lease_check() into a vnode op, per CSRG.

This commit is contained in:
mycroft 1994-12-13 20:14:30 +00:00
parent 51d415bcfe
commit 527b796ff5
15 changed files with 121 additions and 99 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: advnops.c,v 1.14 1994/10/30 21:43:03 cgd Exp $ */
/* $NetBSD: advnops.c,v 1.15 1994/12/13 20:16:38 mycroft Exp $ */
/*
* Copyright (c) 1994 Christian E. Hopps
@ -931,12 +931,13 @@ adnullop(sp)
return(0);
}
#define adosfs_close ((int (*) __P((struct vop_close_args *)))adnullop)
#define adosfs_fsync ((int (*) __P((struct vop_fsync_args *)))adnullop)
#define adosfs_seek ((int (*) __P((struct vop_seek_args *)))adnullop)
#define adosfs_close ((int (*) __P((struct vop_close_args *)))adnullop)
#define adosfs_fsync ((int (*) __P((struct vop_fsync_args *)))adnullop)
#define adosfs_lease_check ((int (*) __P((struct vop_lease_args *)))adnullop)
#define adosfs_seek ((int (*) __P((struct vop_seek_args *)))adnullop)
#define adosfs_vfree ((int (*) __P((struct vop_vfree_args *)))adnullop)
#define adosfs_abortop ((int (*) __P((struct vop_abortop_args *)))adenotsup)
#define adosfs_abortop ((int (*) __P((struct vop_abortop_args *)))adenotsup)
#define adosfs_advlock ((int (*) __P((struct vop_advlock_args *)))adenotsup)
#define adosfs_blkatoff ((int (*) __P((struct vop_blkatoff_args *)))adenotsup)
#define adosfs_bwrite ((int (*) __P((struct vop_bwrite_args *)))adenotsup)
@ -966,6 +967,7 @@ struct vnodeopv_entry_desc adosfs_vnodeop_entries[] = {
{ &vop_setattr_desc, adosfs_setattr }, /* setattr */
{ &vop_read_desc, adosfs_read }, /* read */
{ &vop_write_desc, adosfs_write }, /* write */
{ &vop_lease_desc, adosfs_lease_check }, /* lease */
{ &vop_ioctl_desc, adosfs_ioctl }, /* ioctl */
{ &vop_select_desc, adosfs_select }, /* select */
{ &vop_mmap_desc, adosfs_mmap }, /* mmap */

View File

@ -1,4 +1,4 @@
# $NetBSD: vnode_if.src,v 1.5 1994/11/14 06:01:25 christos Exp $
# $NetBSD: vnode_if.src,v 1.6 1994/12/13 20:14:30 mycroft Exp $
#
# Copyright (c) 1992, 1993
# The Regents of the University of California. All rights reserved.
@ -295,6 +295,13 @@ vop_update {
IN int waitfor;
};
vop_lease {
IN struct vnode *vp;
IN struct proc *p;
IN struct ucred *cred;
IN int flag;
};
# Needs work: no vp?
#vop_bwrite {
# IN struct buf *bp;

View File

@ -1,4 +1,4 @@
/* $NetBSD: fifo.h,v 1.8 1994/06/29 06:34:22 cgd Exp $ */
/* $NetBSD: fifo.h,v 1.9 1994/12/13 20:14:38 mycroft Exp $ */
/*
* Copyright (c) 1991, 1993
@ -32,7 +32,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)fifo.h 8.2 (Berkeley) 2/2/94
* @(#)fifo.h 8.3 (Berkeley) 8/10/94
*/
#ifdef FIFO
@ -52,6 +52,7 @@ int fifo_close __P((struct vop_close_args *));
#define fifo_setattr ((int (*) __P((struct vop_setattr_args *)))fifo_ebadf)
int fifo_read __P((struct vop_read_args *));
int fifo_write __P((struct vop_write_args *));
#define fifo_lease_check ((int (*) __P((struct vop_lease_args *)))nullop)
int fifo_ioctl __P((struct vop_ioctl_args *));
int fifo_select __P((struct vop_select_args *));
#define fifo_mmap ((int (*) __P((struct vop_mmap_args *)))fifo_badop)

View File

@ -1,4 +1,4 @@
/* $NetBSD: fifo_vnops.c,v 1.12 1994/11/14 06:05:45 christos Exp $ */
/* $NetBSD: fifo_vnops.c,v 1.13 1994/12/13 20:14:39 mycroft Exp $ */
/*
* Copyright (c) 1990, 1993
@ -32,7 +32,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)fifo_vnops.c 8.2 (Berkeley) 1/4/94
* @(#)fifo_vnops.c 8.4 (Berkeley) 8/10/94
*/
#include <sys/param.h>
@ -74,6 +74,7 @@ struct vnodeopv_entry_desc fifo_vnodeop_entries[] = {
{ &vop_setattr_desc, fifo_setattr }, /* setattr */
{ &vop_read_desc, fifo_read }, /* read */
{ &vop_write_desc, fifo_write }, /* write */
{ &vop_lease_desc, fifo_lease_check }, /* lease */
{ &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
{ &vop_select_desc, fifo_select }, /* select */
{ &vop_mmap_desc, fifo_mmap }, /* mmap */
@ -243,8 +244,8 @@ fifo_read(ap)
rso->so_state |= SS_NBIO;
startresid = uio->uio_resid;
VOP_UNLOCK(ap->a_vp);
error = soreceive(rso, (struct mbuf **)0, uio,
(struct mbuf **)0, (struct mbuf **)0, (int *)0);
error = soreceive(rso, (struct mbuf **)0, uio, (struct mbuf **)0,
(struct mbuf **)0, (int *)0);
VOP_LOCK(ap->a_vp);
/*
* Clear EOF indication after first such return.

View File

@ -1,4 +1,4 @@
/* $NetBSD: spec_vnops.c,v 1.20 1994/11/14 06:07:45 christos Exp $ */
/* $NetBSD: spec_vnops.c,v 1.21 1994/12/13 20:14:46 mycroft Exp $ */
/*
* Copyright (c) 1989, 1993
@ -32,7 +32,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)spec_vnops.c 8.6 (Berkeley) 4/9/94
* @(#)spec_vnops.c 8.8 (Berkeley) 11/21/94
*/
#include <sys/param.h>
@ -73,6 +73,7 @@ struct vnodeopv_entry_desc spec_vnodeop_entries[] = {
{ &vop_setattr_desc, spec_setattr }, /* setattr */
{ &vop_read_desc, spec_read }, /* read */
{ &vop_write_desc, spec_write }, /* write */
{ &vop_lease_desc, spec_lease_check }, /* lease */
{ &vop_ioctl_desc, spec_ioctl }, /* ioctl */
{ &vop_select_desc, spec_select }, /* select */
{ &vop_mmap_desc, spec_mmap }, /* mmap */
@ -178,7 +179,7 @@ spec_open(ap)
}
VOP_UNLOCK(vp);
error = (*cdevsw[maj].d_open)(dev, ap->a_mode, S_IFCHR,
ap->a_p, ap->a_fp);
ap->a_p, ap->a_fp);
VOP_LOCK(vp);
return (error);
@ -199,7 +200,7 @@ spec_open(ap)
if (error = vfs_mountedon(vp))
return (error);
return ((*bdevsw[maj].d_open)(dev, ap->a_mode, S_IFBLK,
ap->a_p, ap->a_fp));
ap->a_p, ap->a_fp));
}
return (0);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: specdev.h,v 1.8 1994/06/29 06:35:06 cgd Exp $ */
/* $NetBSD: specdev.h,v 1.9 1994/12/13 20:14:47 mycroft Exp $ */
/*
* Copyright (c) 1990, 1993
@ -32,7 +32,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)specdev.h 8.2 (Berkeley) 2/2/94
* @(#)specdev.h 8.3 (Berkeley) 8/10/94
*/
/*
@ -95,6 +95,7 @@ int spec_close __P((struct vop_close_args *));
#define spec_setattr ((int (*) __P((struct vop_setattr_args *)))spec_ebadf)
int spec_read __P((struct vop_read_args *));
int spec_write __P((struct vop_write_args *));
#define spec_lease_check ((int (*) __P((struct vop_lease_args *)))nullop)
int spec_ioctl __P((struct vop_ioctl_args *));
int spec_select __P((struct vop_select_args *));
#define spec_mmap ((int (*) __P((struct vop_mmap_args *)))spec_badop)

View File

@ -1,4 +1,4 @@
/* $NetBSD: union_vnops.c,v 1.10 1994/12/13 16:59:50 mycroft Exp $ */
/* $NetBSD: union_vnops.c,v 1.11 1994/12/13 20:15:33 mycroft Exp $ */
/*
* Copyright (c) 1992, 1993, 1994 The Regents of the University of California.
@ -749,7 +749,6 @@ union_write(ap)
return (error);
}
int
union_lease(ap)
struct vop_lease_args /* {
struct vnode *a_vp;
@ -1500,6 +1499,7 @@ struct vnodeopv_entry_desc union_vnodeop_entries[] = {
{ &vop_setattr_desc, union_setattr }, /* setattr */
{ &vop_read_desc, union_read }, /* read */
{ &vop_write_desc, union_write }, /* write */
{ &vop_lease_desc, union_lease }, /* lease */
{ &vop_ioctl_desc, union_ioctl }, /* ioctl */
{ &vop_select_desc, union_select }, /* select */
{ &vop_mmap_desc, union_mmap }, /* mmap */

View File

@ -1,4 +1,4 @@
/* $NetBSD: denode.h,v 1.9 1994/09/28 11:31:23 mycroft Exp $ */
/* $NetBSD: denode.h,v 1.10 1994/12/13 20:16:47 mycroft Exp $ */
/*-
* Copyright (C) 1994 Wolfgang Solfrank.
@ -225,40 +225,46 @@ struct defid {
/*
* Prototypes for MSDOSFS vnode operations
*/
int msdosfs_lookup __P((struct vop_lookup_args *));
int msdosfs_create __P((struct vop_create_args *));
int msdosfs_mknod __P((struct vop_mknod_args *));
int msdosfs_open __P((struct vop_open_args *));
int msdosfs_close __P((struct vop_close_args *));
int msdosfs_access __P((struct vop_access_args *));
int msdosfs_getattr __P((struct vop_getattr_args *));
int msdosfs_setattr __P((struct vop_setattr_args *));
int msdosfs_read __P((struct vop_read_args *));
int msdosfs_write __P((struct vop_write_args *));
int msdosfs_ioctl __P((struct vop_ioctl_args *));
int msdosfs_select __P((struct vop_select_args *));
int msdosfs_mmap __P((struct vop_mmap_args *));
int msdosfs_fsync __P((struct vop_fsync_args *));
int msdosfs_seek __P((struct vop_seek_args *));
int msdosfs_remove __P((struct vop_remove_args *));
int msdosfs_link __P((struct vop_link_args *));
int msdosfs_rename __P((struct vop_rename_args *));
int msdosfs_mkdir __P((struct vop_mkdir_args *));
int msdosfs_rmdir __P((struct vop_rmdir_args *));
int msdosfs_symlink __P((struct vop_symlink_args *));
int msdosfs_readdir __P((struct vop_readdir_args *));
int msdosfs_readlink __P((struct vop_readlink_args *));
int msdosfs_abortop __P((struct vop_abortop_args *));
int msdosfs_inactive __P((struct vop_inactive_args *));
int msdosfs_reclaim __P((struct vop_reclaim_args *));
int msdosfs_lock __P((struct vop_lock_args *));
int msdosfs_unlock __P((struct vop_unlock_args *));
int msdosfs_bmap __P((struct vop_bmap_args *));
int msdosfs_strategy __P((struct vop_strategy_args *));
int msdosfs_print __P((struct vop_print_args *));
int msdosfs_islocked __P((struct vop_islocked_args *));
int msdosfs_advlock __P((struct vop_advlock_args *));
int msdosfs_reallocblks __P((struct vop_reallocblks_args *));
int msdosfs_lookup __P((struct vop_lookup_args *));
int msdosfs_create __P((struct vop_create_args *));
int msdosfs_mknod __P((struct vop_mknod_args *));
int msdosfs_open __P((struct vop_open_args *));
int msdosfs_close __P((struct vop_close_args *));
int msdosfs_access __P((struct vop_access_args *));
int msdosfs_getattr __P((struct vop_getattr_args *));
int msdosfs_setattr __P((struct vop_setattr_args *));
int msdosfs_read __P((struct vop_read_args *));
int msdosfs_write __P((struct vop_write_args *));
#ifdef NFSSERVER
int lease_check __P((struct vop_lease_args *));
#define msdosfs_lease_check lease_check
#else
#define msdosfs_lease_check ((int (*) __P((struct vop_lease_args *)))nullop)
#endif
int msdosfs_ioctl __P((struct vop_ioctl_args *));
int msdosfs_select __P((struct vop_select_args *));
int msdosfs_mmap __P((struct vop_mmap_args *));
int msdosfs_fsync __P((struct vop_fsync_args *));
int msdosfs_seek __P((struct vop_seek_args *));
int msdosfs_remove __P((struct vop_remove_args *));
int msdosfs_link __P((struct vop_link_args *));
int msdosfs_rename __P((struct vop_rename_args *));
int msdosfs_mkdir __P((struct vop_mkdir_args *));
int msdosfs_rmdir __P((struct vop_rmdir_args *));
int msdosfs_symlink __P((struct vop_symlink_args *));
int msdosfs_readdir __P((struct vop_readdir_args *));
int msdosfs_readlink __P((struct vop_readlink_args *));
int msdosfs_abortop __P((struct vop_abortop_args *));
int msdosfs_inactive __P((struct vop_inactive_args *));
int msdosfs_reclaim __P((struct vop_reclaim_args *));
int msdosfs_lock __P((struct vop_lock_args *));
int msdosfs_unlock __P((struct vop_unlock_args *));
int msdosfs_bmap __P((struct vop_bmap_args *));
int msdosfs_strategy __P((struct vop_strategy_args *));
int msdosfs_print __P((struct vop_print_args *));
int msdosfs_islocked __P((struct vop_islocked_args *));
int msdosfs_advlock __P((struct vop_advlock_args *));
int msdosfs_reallocblks __P((struct vop_reallocblks_args *));
/*
* Internal service routine prototypes.

View File

@ -1,4 +1,4 @@
/* $NetBSD: msdosfs_vnops.c,v 1.25 1994/10/30 21:48:39 cgd Exp $ */
/* $NetBSD: msdosfs_vnops.c,v 1.26 1994/12/13 20:16:50 mycroft Exp $ */
/*-
* Copyright (C) 1994 Wolfgang Solfrank.
@ -1687,7 +1687,8 @@ msdosfs_bmap(ap)
ap->a_bnp, 0));
}
int msdosfs_reallocblks(ap)
int
msdosfs_reallocblks(ap)
struct vop_reallocblks_args /* {
struct vnode *a_vp;
struct cluster_save *a_buflist;
@ -1820,6 +1821,7 @@ struct vnodeopv_entry_desc msdosfs_vnodeop_entries[] = {
{ &vop_setattr_desc, msdosfs_setattr }, /* setattr */
{ &vop_read_desc, msdosfs_read }, /* read */
{ &vop_write_desc, msdosfs_write }, /* write */
{ &vop_lease_desc, msdosfs_lease_check }, /* lease */
{ &vop_ioctl_desc, msdosfs_ioctl }, /* ioctl */
{ &vop_select_desc, msdosfs_select }, /* select */
{ &vop_mmap_desc, msdosfs_mmap }, /* mmap */

View File

@ -1,4 +1,4 @@
/* $NetBSD: nfs_nqlease.c,v 1.6 1994/08/21 21:07:13 cgd Exp $ */
/* $NetBSD: nfs_nqlease.c,v 1.7 1994/12/13 20:15:43 mycroft Exp $ */
/*
* Copyright (c) 1992, 1993
@ -35,7 +35,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)nfs_nqlease.c 8.3 (Berkeley) 1/4/94
* @(#)nfs_nqlease.c 8.5 (Berkeley) 8/18/94
*/
/*
@ -304,21 +304,22 @@ doreply:
* Local lease check for server syscalls.
* Just set up args and let nqsrv_getlease() do the rest.
*/
void
lease_check(vp, p, cred, flag)
struct vnode *vp;
struct proc *p;
struct ucred *cred;
int flag;
lease_check(ap)
struct vop_lease_args /* {
struct vnode *a_vp;
struct proc *a_p;
struct ucred *a_cred;
int a_flag;
} */ *ap;
{
int duration = 0, cache;
struct nfsd nfsd;
u_quad_t frev;
nfsd.nd_slp = NQLOCALSLP;
nfsd.nd_procp = p;
(void) nqsrv_getlease(vp, &duration, NQL_CHECK | flag, &nfsd,
(struct mbuf *)0, &cache, &frev, cred);
nfsd.nd_procp = ap->a_p;
(void) nqsrv_getlease(ap->a_vp, &duration, NQL_CHECK | ap->a_flag,
&nfsd, (struct mbuf *)0, &cache, &frev, ap->a_cred);
}
/*
@ -363,9 +364,8 @@ nqsrv_instimeq(lp, duration)
newexpiry = time.tv_sec + duration + nqsrv_clockskew;
if (lp->lc_expiry == newexpiry)
return;
if (lp->lc_timer.cqe_next != 0) {
if (lp->lc_timer.cqe_next != 0)
CIRCLEQ_REMOVE(&nqtimerhead, lp, lc_timer);
}
lp->lc_expiry = newexpiry;
/*
@ -1065,7 +1065,7 @@ if (strcmp(&vp->v_mount->mnt_stat.f_fstypename[0], MOUNT_NFS)) panic("trash4");
error = tsleep((caddr_t)&nmp->nm_authstr, PSOCK | PCATCH,
"nqnfstimr", hz / 3);
if (error == EINTR || error == ERESTART)
(void) dounmount(nmp->nm_mountp, 0, p);
(void) dounmount(nmp->nm_mountp, MNT_FORCE, p);
}
}
free((caddr_t)nmp, M_NFSMNT);

View File

@ -1,4 +1,4 @@
/* $NetBSD: nfs_vnops.c,v 1.42 1994/12/13 16:18:48 mycroft Exp $ */
/* $NetBSD: nfs_vnops.c,v 1.43 1994/12/13 20:15:47 mycroft Exp $ */
/*
* Copyright (c) 1989, 1993
@ -35,7 +35,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)nfs_vnops.c 8.5 (Berkeley) 2/13/94
* @(#)nfs_vnops.c 8.10 (Berkeley) 8/11/94
*/
/*
@ -91,6 +91,7 @@ struct vnodeopv_entry_desc nfsv2_vnodeop_entries[] = {
{ &vop_setattr_desc, nfs_setattr }, /* setattr */
{ &vop_read_desc, nfs_read }, /* read */
{ &vop_write_desc, nfs_write }, /* write */
{ &vop_lease_desc, nfs_lease_check }, /* lease */
{ &vop_ioctl_desc, nfs_ioctl }, /* ioctl */
{ &vop_select_desc, nfs_select }, /* select */
{ &vop_mmap_desc, nfs_mmap }, /* mmap */
@ -143,6 +144,7 @@ struct vnodeopv_entry_desc spec_nfsv2nodeop_entries[] = {
{ &vop_setattr_desc, nfs_setattr }, /* setattr */
{ &vop_read_desc, nfsspec_read }, /* read */
{ &vop_write_desc, nfsspec_write }, /* write */
{ &vop_lease_desc, spec_lease_check }, /* lease */
{ &vop_ioctl_desc, spec_ioctl }, /* ioctl */
{ &vop_select_desc, spec_select }, /* select */
{ &vop_mmap_desc, spec_mmap }, /* mmap */
@ -193,6 +195,7 @@ struct vnodeopv_entry_desc fifo_nfsv2nodeop_entries[] = {
{ &vop_setattr_desc, nfs_setattr }, /* setattr */
{ &vop_read_desc, nfsfifo_read }, /* read */
{ &vop_write_desc, nfsfifo_write }, /* write */
{ &vop_lease_desc, fifo_lease_check }, /* lease */
{ &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
{ &vop_select_desc, fifo_select }, /* select */
{ &vop_mmap_desc, fifo_mmap }, /* mmap */

View File

@ -1,4 +1,4 @@
/* $NetBSD: vnode.h,v 1.27 1994/11/14 06:02:06 christos Exp $ */
/* $NetBSD: vnode.h,v 1.28 1994/12/13 20:16:03 mycroft Exp $ */
/*
* Copyright (c) 1989, 1993
@ -32,7 +32,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)vnode.h 8.7 (Berkeley) 2/4/94
* @(#)vnode.h 8.11 (Berkeley) 11/21/94
*/
#include <sys/queue.h>
@ -110,6 +110,7 @@ struct vnode {
#define VROOT 0x0001 /* root of its file system */
#define VTEXT 0x0002 /* vnode is a pure text prototype */
#define VSYSTEM 0x0004 /* vnode being used by kernel */
#define VISTTY 0x0008 /* vnode represents a tty */
#define VXLOCK 0x0100 /* vnode is locked to change underlying type */
#define VXWANT 0x0200 /* process is waiting for vnode */
#define VBWAIT 0x0400 /* waiting for output to complete */
@ -224,16 +225,6 @@ extern struct vattr va_null; /* predefined null vattr structure */
#define LEASE_READ 0x1 /* Check lease for readers */
#define LEASE_WRITE 0x2 /* Check lease for modifiers */
#ifdef NFSCLIENT
void lease_check __P((struct vnode *vp, struct proc *p,
struct ucred *ucred, int flag));
void lease_updatetime __P((int deltat));
#define LEASE_CHECK(vp, p, cred, flag) lease_check((vp), (p), (cred), (flag))
#define LEASE_UPDATETIME(dt) lease_updatetime(dt)
#else
#define LEASE_CHECK(vp, p, cred, flag)
#define LEASE_UPDATETIME(dt)
#endif /* NFSCLIENT */
#endif /* KERNEL */
@ -388,7 +379,7 @@ int vn_closefile __P((struct file *fp, struct proc *p));
int vn_ioctl __P((struct file *fp, u_long com, caddr_t data,
struct proc *p));
int vn_open __P((struct nameidata *ndp, int fmode, int cmode,
struct file *fp));
struct file *fp));
int vn_rdwr __P((enum uio_rw rw, struct vnode *vp, caddr_t base,
int len, off_t offset, enum uio_seg segflg, int ioflg,
struct ucred *cred, int *aresid, struct proc *p));

View File

@ -1,4 +1,4 @@
/* $NetBSD: ffs_vnops.c,v 1.3 1994/06/29 06:46:38 cgd Exp $ */
/* $NetBSD: ffs_vnops.c,v 1.4 1994/12/13 20:16:16 mycroft Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1993
@ -76,6 +76,7 @@ struct vnodeopv_entry_desc ffs_vnodeop_entries[] = {
{ &vop_setattr_desc, ufs_setattr }, /* setattr */
{ &vop_read_desc, ffs_read }, /* read */
{ &vop_write_desc, ffs_write }, /* write */
{ &vop_lease_desc, ufs_lease_check }, /* lease */
{ &vop_ioctl_desc, ufs_ioctl }, /* ioctl */
{ &vop_select_desc, ufs_select }, /* select */
{ &vop_mmap_desc, ufs_mmap }, /* mmap */
@ -125,6 +126,7 @@ struct vnodeopv_entry_desc ffs_specop_entries[] = {
{ &vop_setattr_desc, ufs_setattr }, /* setattr */
{ &vop_read_desc, ufsspec_read }, /* read */
{ &vop_write_desc, ufsspec_write }, /* write */
{ &vop_lease_desc, spec_lease_check }, /* lease */
{ &vop_ioctl_desc, spec_ioctl }, /* ioctl */
{ &vop_select_desc, spec_select }, /* select */
{ &vop_mmap_desc, spec_mmap }, /* mmap */
@ -175,6 +177,7 @@ struct vnodeopv_entry_desc ffs_fifoop_entries[] = {
{ &vop_setattr_desc, ufs_setattr }, /* setattr */
{ &vop_read_desc, ufsfifo_read }, /* read */
{ &vop_write_desc, ufsfifo_write }, /* write */
{ &vop_lease_desc, fifo_lease_check }, /* lease */
{ &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
{ &vop_select_desc, fifo_select }, /* select */
{ &vop_mmap_desc, fifo_mmap }, /* mmap */
@ -262,8 +265,7 @@ ffs_reclaim(ap)
register struct vnode *vp = ap->a_vp;
int error;
error = ufs_reclaim(vp);
if (error)
if (error = ufs_reclaim(vp))
return (error);
FREE(vp->v_data, VFSTOUFS(vp->v_mount)->um_devvp->v_tag == VT_MFS ?
M_MFSNODE : M_FFSNODE);

View File

@ -1,4 +1,4 @@
/* $NetBSD: lfs_vnops.c,v 1.3 1994/10/20 04:21:13 cgd Exp $ */
/* $NetBSD: lfs_vnops.c,v 1.4 1994/12/13 20:16:25 mycroft Exp $ */
/*
* Copyright (c) 1986, 1989, 1991, 1993
@ -77,6 +77,7 @@ struct vnodeopv_entry_desc lfs_vnodeop_entries[] = {
{ &vop_setattr_desc, ufs_setattr }, /* setattr */
{ &vop_read_desc, lfs_read }, /* read */
{ &vop_write_desc, lfs_write }, /* write */
{ &vop_lease_desc, ufs_lease_check }, /* lease */
{ &vop_ioctl_desc, ufs_ioctl }, /* ioctl */
{ &vop_select_desc, ufs_select }, /* select */
{ &vop_mmap_desc, ufs_mmap }, /* mmap */
@ -125,6 +126,7 @@ struct vnodeopv_entry_desc lfs_specop_entries[] = {
{ &vop_setattr_desc, ufs_setattr }, /* setattr */
{ &vop_read_desc, ufsspec_read }, /* read */
{ &vop_write_desc, ufsspec_write }, /* write */
{ &vop_lease_desc, spec_lease_check }, /* lease */
{ &vop_ioctl_desc, spec_ioctl }, /* ioctl */
{ &vop_select_desc, spec_select }, /* select */
{ &vop_mmap_desc, spec_mmap }, /* mmap */
@ -174,6 +176,7 @@ struct vnodeopv_entry_desc lfs_fifoop_entries[] = {
{ &vop_setattr_desc, ufs_setattr }, /* setattr */
{ &vop_read_desc, ufsfifo_read }, /* read */
{ &vop_write_desc, ufsfifo_write }, /* write */
{ &vop_lease_desc, fifo_lease_check }, /* lease */
{ &vop_ioctl_desc, fifo_ioctl }, /* ioctl */
{ &vop_select_desc, fifo_select }, /* select */
{ &vop_mmap_desc, fifo_mmap }, /* mmap */
@ -424,12 +427,9 @@ lfs_getattr(ap)
vap->va_gid = ip->i_gid;
vap->va_rdev = (dev_t)ip->i_rdev;
vap->va_size = ip->i_din.di_size;
vap->va_atime.ts_sec = ip->i_atime.ts_sec;
vap->va_atime.ts_nsec = ip->i_atime.ts_nsec;
vap->va_mtime.ts_sec = ip->i_mtime.ts_sec;
vap->va_mtime.ts_nsec = ip->i_mtime.ts_nsec;
vap->va_ctime.ts_sec = ip->i_ctime.ts_sec;
vap->va_ctime.ts_nsec = ip->i_ctime.ts_nsec;
vap->va_atime = ip->i_atime;
vap->va_mtime = ip->i_mtime;
vap->va_ctime = ip->i_ctime;
vap->va_flags = ip->i_flags;
vap->va_gen = ip->i_gen;
/* this doesn't belong here */
@ -503,8 +503,7 @@ lfs_reclaim(ap)
register struct vnode *vp = ap->a_vp;
int error;
error = ufs_reclaim(vp);
if (error)
if (error = ufs_reclaim(vp))
return (error);
FREE(vp->v_data, M_LFSNODE);
vp->v_data = NULL;

View File

@ -1,4 +1,4 @@
/* $NetBSD: ufs_extern.h,v 1.2 1994/06/29 06:47:25 cgd Exp $ */
/* $NetBSD: ufs_extern.h,v 1.3 1994/12/13 20:16:30 mycroft Exp $ */
/*-
* Copyright (c) 1991, 1993, 1994
@ -81,6 +81,12 @@ int ufs_inactive __P((struct vop_inactive_args *));
int ufs_init __P((void));
int ufs_ioctl __P((struct vop_ioctl_args *));
int ufs_islocked __P((struct vop_islocked_args *));
#ifdef NFSSERVER
int lease_check __P((struct vop_lease_args *));
#define ufs_lease_check lease_check
#else
#define ufs_lease_check ((int (*) __P((struct vop_lease_args *)))nullop)
#endif
int ufs_link __P((struct vop_link_args *));
int ufs_lock __P((struct vop_lock_args *));
int ufs_lookup __P((struct vop_lookup_args *));