add a VOP_PUTPAGES method for all the filesystems that don't have pages,

just unlock the interlock.
This commit is contained in:
chs 2001-12-06 04:27:40 +00:00
parent 3661bbfbf5
commit 5a690c92a1
14 changed files with 66 additions and 52 deletions

View File

@ -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);

View File

@ -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 };

View File

@ -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 =

View File

@ -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 *));

View File

@ -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);
}

View File

@ -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 *));

View File

@ -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)
{

View File

@ -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 =

View File

@ -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 =

View File

@ -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 =

View File

@ -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));

View File

@ -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 };

View File

@ -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 };

View File

@ -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