added advisory record locking support

This commit is contained in:
kleink 1997-04-02 17:09:47 +00:00
parent b7624c248a
commit c1779f82c3
2 changed files with 30 additions and 7 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: spec_vnops.c,v 1.34 1996/10/13 02:21:41 christos Exp $ */
/* $NetBSD: spec_vnops.c,v 1.35 1997/04/02 17:09:47 kleink Exp $ */
/*
* Copyright (c) 1989, 1993
@ -49,6 +49,7 @@
#include <sys/ioctl.h>
#include <sys/file.h>
#include <sys/disklabel.h>
#include <sys/lockf.h>
#include <miscfs/genfs/genfs.h>
#include <miscfs/specfs/specdev.h>
@ -662,3 +663,23 @@ spec_pathconf(v)
}
/* NOTREACHED */
}
/*
* Advisory record locking support.
*/
int
spec_advlock(v)
void *v;
{
struct vop_advlock_args /* {
struct vnode *a_vp;
caddr_t a_id;
int a_op;
struct flock *a_fl;
int a_flags;
} */ *ap = v;
register struct vnode *vp = ap->a_vp;
return (lf_advlock(&vp->v_speclockf, (off_t)0, ap->a_id, ap->a_op,
ap->a_fl, ap->a_flags));
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: specdev.h,v 1.14 1996/09/07 12:41:20 mycroft Exp $ */
/* $NetBSD: specdev.h,v 1.15 1997/04/02 17:09:48 kleink Exp $ */
/*
* Copyright (c) 1990, 1993
@ -45,14 +45,16 @@ struct specinfo {
struct vnode *si_specnext;
long si_flags;
dev_t si_rdev;
struct lockf *si_lockf;
};
/*
* Exported shorthand
*/
#define v_rdev v_specinfo->si_rdev
#define v_hashchain v_specinfo->si_hashchain
#define v_specnext v_specinfo->si_specnext
#define v_specflags v_specinfo->si_flags
#define v_rdev v_specinfo->si_rdev
#define v_hashchain v_specinfo->si_hashchain
#define v_specnext v_specinfo->si_specnext
#define v_specflags v_specinfo->si_flags
#define v_speclockf v_specinfo->si_lockf
/*
* Flags for specinfo
@ -116,7 +118,7 @@ int spec_strategy __P((void *));
int spec_print __P((void *));
#define spec_islocked genfs_nullop
int spec_pathconf __P((void *));
#define spec_advlock genfs_eopnotsupp
int spec_advlock __P((void *));
#define spec_blkatoff genfs_badop
#define spec_valloc genfs_badop
#define spec_reallocblks genfs_badop