added advisory record locking support
This commit is contained in:
parent
b7624c248a
commit
c1779f82c3
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue