add a VOP_PUTPAGES method for all the filesystems that don't have pages,
just unlock the interlock.
This commit is contained in:
parent
3661bbfbf5
commit
5a690c92a1
|
@ -6,7 +6,7 @@ mkdir
|
|||
rmdir
|
||||
symlink
|
||||
*/
|
||||
/* $NetBSD: coda_vnops.c,v 1.29 2001/11/24 01:11:35 perry Exp $ */
|
||||
/* $NetBSD: coda_vnops.c,v 1.30 2001/12/06 04:27:40 chs Exp $ */
|
||||
|
||||
/*
|
||||
*
|
||||
|
@ -54,7 +54,7 @@ symlink
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: coda_vnops.c,v 1.29 2001/11/24 01:11:35 perry Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: coda_vnops.c,v 1.30 2001/12/06 04:27:40 chs Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -2050,6 +2050,8 @@ coda_putpages(v)
|
|||
} */ *ap = v;
|
||||
struct vnode *vp = ap->a_vp;
|
||||
|
||||
simple_unlock(&vp->v_interlock);
|
||||
|
||||
/* Check for control object. */
|
||||
if (IS_CTL_VP(vp)) {
|
||||
return(EINVAL);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: dead_vnops.c,v 1.31 2001/11/10 13:33:40 lukem Exp $ */
|
||||
/* $NetBSD: dead_vnops.c,v 1.32 2001/12/06 04:27:40 chs Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1989, 1993
|
||||
|
@ -36,7 +36,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: dead_vnops.c,v 1.31 2001/11/10 13:33:40 lukem Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: dead_vnops.c,v 1.32 2001/12/06 04:27:40 chs Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -95,6 +95,7 @@ int dead_print __P((void *));
|
|||
#define dead_update genfs_nullop
|
||||
#define dead_bwrite genfs_nullop
|
||||
#define dead_revoke genfs_nullop
|
||||
#define dead_putpages genfs_null_putpages
|
||||
|
||||
int chkvnlock __P((struct vnode *));
|
||||
|
||||
|
@ -145,7 +146,8 @@ const struct vnodeopv_entry_desc dead_vnodeop_entries[] = {
|
|||
{ &vop_truncate_desc, dead_truncate }, /* truncate */
|
||||
{ &vop_update_desc, dead_update }, /* update */
|
||||
{ &vop_bwrite_desc, dead_bwrite }, /* bwrite */
|
||||
{ (struct vnodeop_desc*)NULL, (int(*) __P((void *)))NULL }
|
||||
{ &vop_putpages_desc, dead_putpages }, /* putpages */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc dead_vnodeop_opv_desc =
|
||||
{ &dead_vnodeop_p, dead_vnodeop_entries };
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fdesc_vnops.c,v 1.66 2001/11/15 09:48:21 lukem Exp $ */
|
||||
/* $NetBSD: fdesc_vnops.c,v 1.67 2001/12/06 04:27:41 chs Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
|
@ -45,7 +45,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.66 2001/11/15 09:48:21 lukem Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.67 2001/12/06 04:27:41 chs Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -130,6 +130,7 @@ int fdesc_pathconf __P((void *));
|
|||
#define fdesc_update genfs_nullop
|
||||
#define fdesc_bwrite genfs_eopnotsupp
|
||||
#define fdesc_revoke genfs_revoke
|
||||
#define fdesc_putpages genfs_null_putpages
|
||||
|
||||
static int fdesc_attr __P((int, struct vattr *, struct ucred *, struct proc *));
|
||||
|
||||
|
@ -178,7 +179,8 @@ const struct vnodeopv_entry_desc fdesc_vnodeop_entries[] = {
|
|||
{ &vop_truncate_desc, fdesc_truncate }, /* truncate */
|
||||
{ &vop_update_desc, fdesc_update }, /* update */
|
||||
{ &vop_bwrite_desc, fdesc_bwrite }, /* bwrite */
|
||||
{ (struct vnodeop_desc*)NULL, (int(*) __P((void *)))NULL }
|
||||
{ &vop_putpages_desc, fdesc_putpages }, /* putpages */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
const struct vnodeopv_desc fdesc_vnodeop_opv_desc =
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fifo.h,v 1.17 2001/09/22 22:35:18 sommerfeld Exp $ */
|
||||
/* $NetBSD: fifo.h,v 1.18 2001/12/06 04:27:41 chs Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1991, 1993
|
||||
|
@ -81,7 +81,7 @@ int fifo_pathconf __P((void *));
|
|||
#define fifo_truncate genfs_nullop
|
||||
#define fifo_update genfs_nullop
|
||||
#define fifo_bwrite genfs_nullop
|
||||
int fifo_putpages __P((void *));
|
||||
#define fifo_putpages genfs_null_putpages
|
||||
|
||||
void fifo_printinfo __P((struct vnode *));
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: fifo_vnops.c,v 1.32 2001/11/10 13:33:41 lukem Exp $ */
|
||||
/* $NetBSD: fifo_vnops.c,v 1.33 2001/12/06 04:27:41 chs Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1990, 1993, 1995
|
||||
|
@ -36,7 +36,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: fifo_vnops.c,v 1.32 2001/11/10 13:33:41 lukem Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: fifo_vnops.c,v 1.33 2001/12/06 04:27:41 chs Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -509,24 +509,3 @@ fifo_pathconf(void *v)
|
|||
}
|
||||
/* NOTREACHED */
|
||||
}
|
||||
|
||||
/*
|
||||
* Dummy putpages routine.
|
||||
*/
|
||||
|
||||
int
|
||||
fifo_putpages(void *v)
|
||||
{
|
||||
struct vop_putpages_args /* {
|
||||
struct vnode *a_vp;
|
||||
voff_t a_offlo;
|
||||
voff_t a_offhi;
|
||||
int a_flags;
|
||||
} */ *ap = v;
|
||||
struct vnode *vp = ap->a_vp;
|
||||
struct uvm_object *uobj = &vp->v_uobj;
|
||||
|
||||
KASSERT(uobj->uo_npages == 0);
|
||||
simple_unlock(&uobj->vmobjlock);
|
||||
return (0);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: genfs.h,v 1.13 2001/09/15 20:36:38 chs Exp $ */
|
||||
/* $NetBSD: genfs.h,v 1.14 2001/12/06 04:27:41 chs Exp $ */
|
||||
|
||||
int genfs_badop __P((void *));
|
||||
int genfs_nullop __P((void *));
|
||||
|
@ -25,5 +25,4 @@ int genfs_unlock __P((void *));
|
|||
int genfs_mmap __P((void *));
|
||||
int genfs_getpages __P((void *));
|
||||
int genfs_putpages __P((void *));
|
||||
int genfs_mmap __P((void *));
|
||||
int genfs_munmap __P((void *));
|
||||
int genfs_null_putpages __P((void *));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: genfs_vnops.c,v 1.41 2001/11/30 15:18:39 christos Exp $ */
|
||||
/* $NetBSD: genfs_vnops.c,v 1.42 2001/12/06 04:27:41 chs Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1982, 1986, 1989, 1993
|
||||
|
@ -35,7 +35,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: genfs_vnops.c,v 1.41 2001/11/30 15:18:39 christos Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: genfs_vnops.c,v 1.42 2001/12/06 04:27:41 chs Exp $");
|
||||
|
||||
#include "opt_nfsserver.h"
|
||||
|
||||
|
@ -1427,6 +1427,26 @@ genfs_gop_write(struct vnode *vp, struct vm_page **pgs, int npages, int flags)
|
|||
return error;
|
||||
}
|
||||
|
||||
/*
|
||||
* VOP_PUTPAGES() for vnodes which never have pages.
|
||||
*/
|
||||
|
||||
int
|
||||
genfs_null_putpages(void *v)
|
||||
{
|
||||
struct vop_putpages_args /* {
|
||||
struct vnode *a_vp;
|
||||
voff_t a_offlo;
|
||||
voff_t a_offhi;
|
||||
int a_flags;
|
||||
} */ *ap = v;
|
||||
struct vnode *vp = ap->a_vp;
|
||||
|
||||
KASSERT(vp->v_uobj.uo_npages == 0);
|
||||
simple_unlock(&vp->v_interlock);
|
||||
return (0);
|
||||
}
|
||||
|
||||
void
|
||||
genfs_node_init(struct vnode *vp, struct genfs_ops *ops)
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: kernfs_vnops.c,v 1.78 2001/11/15 09:48:22 lukem Exp $ */
|
||||
/* $NetBSD: kernfs_vnops.c,v 1.79 2001/12/06 04:27:42 chs Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
|
@ -43,7 +43,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.78 2001/11/15 09:48:22 lukem Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.79 2001/12/06 04:27:42 chs Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -143,6 +143,7 @@ int kernfs_pathconf __P((void *));
|
|||
#define kernfs_truncate genfs_eopnotsupp
|
||||
#define kernfs_update genfs_nullop
|
||||
#define kernfs_bwrite genfs_eopnotsupp
|
||||
#define kernfs_putpages genfs_putpages
|
||||
|
||||
int kernfs_xread __P((const struct kern_target *, int, char **, int));
|
||||
int kernfs_xwrite __P((const struct kern_target *, char *, int));
|
||||
|
@ -191,6 +192,7 @@ const struct vnodeopv_entry_desc kernfs_vnodeop_entries[] = {
|
|||
{ &vop_truncate_desc, kernfs_truncate }, /* truncate */
|
||||
{ &vop_update_desc, kernfs_update }, /* update */
|
||||
{ &vop_bwrite_desc, kernfs_bwrite }, /* bwrite */
|
||||
{ &vop_putpages_desc, kernfs_putpages }, /* putpages */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc kernfs_vnodeop_opv_desc =
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: portal_vnops.c,v 1.40 2001/11/15 09:48:23 lukem Exp $ */
|
||||
/* $NetBSD: portal_vnops.c,v 1.41 2001/12/06 04:27:42 chs Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
|
@ -44,7 +44,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: portal_vnops.c,v 1.40 2001/11/15 09:48:23 lukem Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: portal_vnops.c,v 1.41 2001/12/06 04:27:42 chs Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -114,6 +114,7 @@ int portal_pathconf __P((void *));
|
|||
#define portal_truncate genfs_eopnotsupp
|
||||
#define portal_update genfs_eopnotsupp
|
||||
#define portal_bwrite genfs_eopnotsupp
|
||||
#define portal_putpages genfs_null_putpages
|
||||
|
||||
int (**portal_vnodeop_p) __P((void *));
|
||||
const struct vnodeopv_entry_desc portal_vnodeop_entries[] = {
|
||||
|
@ -159,6 +160,7 @@ const struct vnodeopv_entry_desc portal_vnodeop_entries[] = {
|
|||
{ &vop_truncate_desc, portal_truncate }, /* truncate */
|
||||
{ &vop_update_desc, portal_update }, /* update */
|
||||
{ &vop_bwrite_desc, portal_bwrite }, /* bwrite */
|
||||
{ &vop_putpages_desc, portal_putpages }, /* putpages */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc portal_vnodeop_opv_desc =
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: procfs_vnops.c,v 1.86 2001/12/05 00:58:06 thorpej Exp $ */
|
||||
/* $NetBSD: procfs_vnops.c,v 1.87 2001/12/06 04:27:42 chs Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1993 Jan-Simon Pendry
|
||||
|
@ -44,7 +44,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.86 2001/12/05 00:58:06 thorpej Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.87 2001/12/06 04:27:42 chs Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -164,6 +164,7 @@ int procfs_pathconf __P((void *));
|
|||
#define procfs_truncate genfs_eopnotsupp
|
||||
#define procfs_update genfs_nullop
|
||||
#define procfs_bwrite genfs_eopnotsupp
|
||||
#define procfs_putpages genfs_null_putpages
|
||||
|
||||
static pid_t atopid __P((const char *, u_int));
|
||||
|
||||
|
@ -213,6 +214,7 @@ const struct vnodeopv_entry_desc procfs_vnodeop_entries[] = {
|
|||
{ &vop_vfree_desc, procfs_vfree }, /* vfree */
|
||||
{ &vop_truncate_desc, procfs_truncate }, /* truncate */
|
||||
{ &vop_update_desc, procfs_update }, /* update */
|
||||
{ &vop_putpages_desc, procfs_putpages }, /* putpages */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc procfs_vnodeop_opv_desc =
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: syncfs.h,v 1.4 2000/07/09 00:59:06 mycroft Exp $ */
|
||||
/* $NetBSD: syncfs.h,v 1.5 2001/12/06 04:27:42 chs Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright 1997 Marshall Kirk McKusick. All Rights Reserved.
|
||||
|
@ -42,6 +42,7 @@ int sync_reclaim __P((void *));
|
|||
#define sync_unlock genfs_nounlock
|
||||
int sync_print __P((void *));
|
||||
#define sync_islocked genfs_noislocked
|
||||
#define sync_putpages genfs_null_putpages
|
||||
|
||||
void sched_sync __P((void *));
|
||||
void vn_initialize_syncerd __P((void));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ntfs_vnops.c,v 1.38 2001/11/15 09:48:29 lukem Exp $ */
|
||||
/* $NetBSD: ntfs_vnops.c,v 1.39 2001/12/06 04:27:43 chs Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
|
@ -40,7 +40,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: ntfs_vnops.c,v 1.38 2001/11/15 09:48:29 lukem Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: ntfs_vnops.c,v 1.39 2001/12/06 04:27:43 chs Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -978,7 +978,8 @@ const struct vnodeopv_entry_desc ntfs_vnodeop_entries[] = {
|
|||
{ &vop_truncate_desc, genfs_eopnotsupp }, /* truncate */
|
||||
{ &vop_update_desc, genfs_eopnotsupp }, /* update */
|
||||
{ &vop_bwrite_desc, vn_bwrite }, /* bwrite */
|
||||
{ (struct vnodeop_desc *)NULL, (int (*) __P((void *)))NULL }
|
||||
{ &vop_putpages_desc, genfs_null_putpages }, /* putpages */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc ntfs_vnodeop_opv_desc =
|
||||
{ &ntfs_vnodeop_p, ntfs_vnodeop_entries };
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: mfs_vnops.c,v 1.28 2001/11/08 02:39:15 lukem Exp $ */
|
||||
/* $NetBSD: mfs_vnops.c,v 1.29 2001/12/06 04:27:43 chs Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1989, 1993
|
||||
|
@ -36,7 +36,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: mfs_vnops.c,v 1.28 2001/11/08 02:39:15 lukem Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: mfs_vnops.c,v 1.29 2001/12/06 04:27:43 chs Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -103,7 +103,8 @@ const struct vnodeopv_entry_desc mfs_vnodeop_entries[] = {
|
|||
{ &vop_truncate_desc, mfs_truncate }, /* truncate */
|
||||
{ &vop_update_desc, mfs_update }, /* update */
|
||||
{ &vop_bwrite_desc, mfs_bwrite }, /* bwrite */
|
||||
{ (struct vnodeop_desc*)NULL, (int(*) __P((void *)))NULL }
|
||||
{ &vop_putpages_desc, mfs_putpages }, /* putpages */
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct vnodeopv_desc mfs_vnodeop_opv_desc =
|
||||
{ &mfs_vnodeop_p, mfs_vnodeop_entries };
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: mfsnode.h,v 1.10 2000/05/19 20:42:21 thorpej Exp $ */
|
||||
/* $NetBSD: mfsnode.h,v 1.11 2001/12/06 04:27:43 chs Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1989, 1993
|
||||
|
@ -86,3 +86,4 @@ struct mfsnode {
|
|||
#define mfs_update genfs_badop
|
||||
#define mfs_bwrite vn_bwrite
|
||||
#define mfs_revoke genfs_revoke
|
||||
#define mfs_putpages genfs_null_putpages
|
||||
|
|
Loading…
Reference in New Issue