Module Name: src Committed By: hannken Date: Mon Jul 11 08:27:41 UTC 2011
Modified Files: src/share/man/man9: vnodeops.9 src/sys/kern: vfs_bio.c vfs_subr.c vnode_if.c src/sys/miscfs/genfs: layer_extern.h layer_vnops.c src/sys/miscfs/nullfs: null_vnops.c src/sys/miscfs/overlay: overlay_vnops.c src/sys/miscfs/umapfs: umap_vnops.c src/sys/rump/include/rump: rumpvnode_if.h src/sys/rump/librump/rumpvfs: rumpvnode_if.c src/sys/sys: param.h vnode_if.h src/sys/ufs/ext2fs: ext2fs_lookup.c src/sys/ufs/lfs: lfs.h lfs_balloc.c lfs_bio.c lfs_inode.c lfs_segment.c lfs_vfsops.c lfs_vnops.c src/sys/ufs/ufs: ufs_lookup.c ufs_readwrite.c ufs_vnops.c Log Message: Change VOP_BWRITE() to take a vnode as its first argument like all other VOPs do. Layered file systems no longer have to modify bp->b_vp and run into trouble when an async VOP_BWRITE() uses the wrong vnode. - change all occurences of VOP_BWRITE(bp) to VOP_BWRITE(bp->b_vp, bp). - remove layer_bwrite(). - welcome to 5.99.55 Adresses PR kern/38762 panic: vwakeup: neg numoutput No objections from tech-kern@. To generate a diff of this commit: cvs rdiff -u -r1.81 -r1.82 src/share/man/man9/vnodeops.9 cvs rdiff -u -r1.230 -r1.231 src/sys/kern/vfs_bio.c cvs rdiff -u -r1.423 -r1.424 src/sys/kern/vfs_subr.c cvs rdiff -u -r1.87 -r1.88 src/sys/kern/vnode_if.c cvs rdiff -u -r1.28 -r1.29 src/sys/miscfs/genfs/layer_extern.h cvs rdiff -u -r1.48 -r1.49 src/sys/miscfs/genfs/layer_vnops.c cvs rdiff -u -r1.37 -r1.38 src/sys/miscfs/nullfs/null_vnops.c cvs rdiff -u -r1.18 -r1.19 src/sys/miscfs/overlay/overlay_vnops.c cvs rdiff -u -r1.52 -r1.53 src/sys/miscfs/umapfs/umap_vnops.c cvs rdiff -u -r1.10 -r1.11 src/sys/rump/include/rump/rumpvnode_if.h cvs rdiff -u -r1.9 -r1.10 src/sys/rump/librump/rumpvfs/rumpvnode_if.c cvs rdiff -u -r1.391 -r1.392 src/sys/sys/param.h cvs rdiff -u -r1.81 -r1.82 src/sys/sys/vnode_if.h cvs rdiff -u -r1.63 -r1.64 src/sys/ufs/ext2fs/ext2fs_lookup.c cvs rdiff -u -r1.133 -r1.134 src/sys/ufs/lfs/lfs.h cvs rdiff -u -r1.69 -r1.70 src/sys/ufs/lfs/lfs_balloc.c cvs rdiff -u -r1.119 -r1.120 src/sys/ufs/lfs/lfs_bio.c cvs rdiff -u -r1.124 -r1.125 src/sys/ufs/lfs/lfs_inode.c cvs rdiff -u -r1.221 -r1.222 src/sys/ufs/lfs/lfs_segment.c cvs rdiff -u -r1.289 -r1.290 src/sys/ufs/lfs/lfs_vfsops.c cvs rdiff -u -r1.235 -r1.236 src/sys/ufs/lfs/lfs_vnops.c cvs rdiff -u -r1.106 -r1.107 src/sys/ufs/ufs/ufs_lookup.c cvs rdiff -u -r1.98 -r1.99 src/sys/ufs/ufs/ufs_readwrite.c cvs rdiff -u -r1.189 -r1.190 src/sys/ufs/ufs/ufs_vnops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/share/man/man9/vnodeops.9 diff -u src/share/man/man9/vnodeops.9:1.81 src/share/man/man9/vnodeops.9:1.82 --- src/share/man/man9/vnodeops.9:1.81 Tue Jun 14 00:22:45 2011 +++ src/share/man/man9/vnodeops.9 Mon Jul 11 08:27:37 2011 @@ -1,4 +1,4 @@ -.\" $NetBSD: vnodeops.9,v 1.81 2011/06/14 00:22:45 rmind Exp $ +.\" $NetBSD: vnodeops.9,v 1.82 2011/07/11 08:27:37 hannken Exp $ .\" .\" Copyright (c) 2001, 2005, 2006 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd June 14, 2011 +.Dd July 11, 2011 .Dt VNODEOPS 9 .Os .Sh NAME @@ -192,7 +192,7 @@ .Ft int .Fn VOP_STRATEGY "struct vnode *vp" "struct buf *bp" .Ft int -.Fn VOP_BWRITE "struct buf *bp" +.Fn VOP_BWRITE "struct vnode *vp" "struct buf *bp" .Ft int .Fn VOP_GETEXTATTR "struct vnode *vp" "int attrnamespace" "const char *name" \ "struct uio *uio" "size_t *size" "kauth_cred_t cred" @@ -1305,9 +1305,12 @@ .Em bp-\*[Gt]b_flags . If the operation is successful zero is returned, otherwise an appropriate error code is returned. -.It Fn VOP_BWRITE "bp" +.It Fn VOP_BWRITE "vp" "bp" Write a file system buffer. The argument +.Fa vp +is the vnode to write to. +The argument .Fa bp specifies the buffer to be written. If the operation is successful zero is returned, otherwise an Index: src/sys/kern/vfs_bio.c diff -u src/sys/kern/vfs_bio.c:1.230 src/sys/kern/vfs_bio.c:1.231 --- src/sys/kern/vfs_bio.c:1.230 Sun Jun 12 03:35:56 2011 +++ src/sys/kern/vfs_bio.c Mon Jul 11 08:27:37 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_bio.c,v 1.230 2011/06/12 03:35:56 rmind Exp $ */ +/* $NetBSD: vfs_bio.c,v 1.231 2011/07/11 08:27:37 hannken Exp $ */ /*- * Copyright (c) 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -123,7 +123,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_bio.c,v 1.230 2011/06/12 03:35:56 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_bio.c,v 1.231 2011/07/11 08:27:37 hannken Exp $"); #include "opt_bufcache.h" @@ -951,9 +951,10 @@ { KASSERT(ISSET(bp->b_cflags, BC_BUSY)); + KASSERT(bp->b_vp != NULL); SET(bp->b_flags, B_ASYNC); - VOP_BWRITE(bp); + VOP_BWRITE(bp->b_vp, bp); } /* Index: src/sys/kern/vfs_subr.c diff -u src/sys/kern/vfs_subr.c:1.423 src/sys/kern/vfs_subr.c:1.424 --- src/sys/kern/vfs_subr.c:1.423 Sun Jun 12 03:35:56 2011 +++ src/sys/kern/vfs_subr.c Mon Jul 11 08:27:37 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_subr.c,v 1.423 2011/06/12 03:35:56 rmind Exp $ */ +/* $NetBSD: vfs_subr.c,v 1.424 2011/07/11 08:27:37 hannken Exp $ */ /*- * Copyright (c) 1997, 1998, 2004, 2005, 2007, 2008 The NetBSD Foundation, Inc. @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_subr.c,v 1.423 2011/06/12 03:35:56 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_subr.c,v 1.424 2011/07/11 08:27:37 hannken Exp $"); #include "opt_ddb.h" #include "opt_compat_netbsd.h" @@ -197,7 +197,7 @@ #endif bp->b_cflags |= BC_BUSY | BC_VFLUSH; mutex_exit(&bufcache_lock); - VOP_BWRITE(bp); + VOP_BWRITE(bp->b_vp, bp); mutex_enter(&bufcache_lock); goto restart; } Index: src/sys/kern/vnode_if.c diff -u src/sys/kern/vnode_if.c:1.87 src/sys/kern/vnode_if.c:1.88 --- src/sys/kern/vnode_if.c:1.87 Mon Jul 4 08:07:31 2011 +++ src/sys/kern/vnode_if.c Mon Jul 11 08:27:38 2011 @@ -1,13 +1,13 @@ -/* $NetBSD: vnode_if.c,v 1.87 2011/07/04 08:07:31 manu Exp $ */ +/* $NetBSD: vnode_if.c,v 1.88 2011/07/11 08:27:38 hannken Exp $ */ /* * Warning: DO NOT EDIT! This file is automatically generated! * (Modifications made here may easily be lost!) * * Created from the file: - * NetBSD: vnode_if.src,v 1.60 2011/01/02 06:58:45 dholland Exp + * NetBSD: vnode_if.src,v 1.62 2011/07/11 08:23:00 hannken Exp * by the script: - * NetBSD: vnode_if.sh,v 1.56 2010/04/14 13:58:51 pooka Exp + * NetBSD: vnode_if.sh,v 1.58 2011/07/11 08:23:00 hannken Exp */ /* @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vnode_if.c,v 1.87 2011/07/04 08:07:31 manu Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vnode_if.c,v 1.88 2011/07/11 08:27:38 hannken Exp $"); #include <sys/param.h> #include <sys/mount.h> @@ -59,9 +59,8 @@ }; -/* Special cases: */ - const int vop_bwrite_vp_offsets[] = { + VOPARG_OFFSETOF(struct vop_bwrite_args,a_vp), VDESC_NO_OFFSET }; const struct vnodeop_desc vop_bwrite_desc = { @@ -74,22 +73,22 @@ VDESC_NO_OFFSET, }; int -VOP_BWRITE(struct buf *bp) +VOP_BWRITE(struct vnode *vp, + struct buf *bp) { int error; bool mpsafe; struct vop_bwrite_args a; a.a_desc = VDESC(vop_bwrite); + a.a_vp = vp; a.a_bp = bp; - mpsafe = (bp->b_vp->v_vflag & VV_MPSAFE); + mpsafe = (vp->v_vflag & VV_MPSAFE); if (!mpsafe) { KERNEL_LOCK(1, curlwp); } - error = (VCALL(bp->b_vp, VOFFSET(vop_bwrite), &a)); + error = (VCALL(vp, VOFFSET(vop_bwrite), &a)); if (!mpsafe) { KERNEL_UNLOCK_ONE(curlwp); } return error; } -/* End of special cases */ - const int vop_lookup_vp_offsets[] = { VOPARG_OFFSETOF(struct vop_lookup_args,a_dvp), VDESC_NO_OFFSET @@ -1641,8 +1640,8 @@ const struct vnodeop_desc * const vfs_op_descs[] = { &vop_default_desc, /* MUST BE FIRST */ - &vop_bwrite_desc, /* XXX: SPECIAL CASE */ + &vop_bwrite_desc, &vop_lookup_desc, &vop_create_desc, &vop_mknod_desc, Index: src/sys/miscfs/genfs/layer_extern.h diff -u src/sys/miscfs/genfs/layer_extern.h:1.28 src/sys/miscfs/genfs/layer_extern.h:1.29 --- src/sys/miscfs/genfs/layer_extern.h:1.28 Sun Mar 6 17:08:36 2011 +++ src/sys/miscfs/genfs/layer_extern.h Mon Jul 11 08:27:38 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: layer_extern.h,v 1.28 2011/03/06 17:08:36 bouyer Exp $ */ +/* $NetBSD: layer_extern.h,v 1.29 2011/07/11 08:27:38 hannken Exp $ */ /* * Copyright (c) 1999 National Aeronautics & Space Administration @@ -104,7 +104,6 @@ int layer_inactive(void *); int layer_reclaim(void *); int layer_print(void *); -int layer_bwrite(void *); int layer_bmap(void *); int layer_fsync(void *); int layer_lookup(void *); Index: src/sys/miscfs/genfs/layer_vnops.c diff -u src/sys/miscfs/genfs/layer_vnops.c:1.48 src/sys/miscfs/genfs/layer_vnops.c:1.49 --- src/sys/miscfs/genfs/layer_vnops.c:1.48 Sun Jun 12 03:35:58 2011 +++ src/sys/miscfs/genfs/layer_vnops.c Mon Jul 11 08:27:38 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: layer_vnops.c,v 1.48 2011/06/12 03:35:58 rmind Exp $ */ +/* $NetBSD: layer_vnops.c,v 1.49 2011/07/11 08:27:38 hannken Exp $ */ /* * Copyright (c) 1999 National Aeronautics & Space Administration @@ -170,7 +170,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: layer_vnops.c,v 1.48 2011/06/12 03:35:58 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: layer_vnops.c,v 1.49 2011/07/11 08:27:38 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -733,29 +733,6 @@ return 0; } -/* - * XXX - vop_bwrite must be hand coded because it has no - * vnode in its arguments. - * This goes away with a merged VM/buffer cache. - */ -int -layer_bwrite(void *v) -{ - struct vop_bwrite_args /* { - struct buf *a_bp; - } */ *ap = v; - struct buf *bp = ap->a_bp; - struct vnode *savedvp; - int error; - - savedvp = bp->b_vp; - bp->b_vp = LAYERVPTOLOWERVP(bp->b_vp); - error = VOP_BWRITE(bp); - bp->b_vp = savedvp; - - return error; -} - int layer_getpages(void *v) { Index: src/sys/miscfs/nullfs/null_vnops.c diff -u src/sys/miscfs/nullfs/null_vnops.c:1.37 src/sys/miscfs/nullfs/null_vnops.c:1.38 --- src/sys/miscfs/nullfs/null_vnops.c:1.37 Mon Jan 10 11:11:03 2011 +++ src/sys/miscfs/nullfs/null_vnops.c Mon Jul 11 08:27:38 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: null_vnops.c,v 1.37 2011/01/10 11:11:03 hannken Exp $ */ +/* $NetBSD: null_vnops.c,v 1.38 2011/07/11 08:27:38 hannken Exp $ */ /* * Copyright (c) 1999 National Aeronautics & Space Administration @@ -80,7 +80,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: null_vnops.c,v 1.37 2011/01/10 11:11:03 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: null_vnops.c,v 1.38 2011/07/11 08:27:38 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -114,7 +114,6 @@ { &vop_open_desc, layer_open }, /* mount option handling */ - { &vop_bwrite_desc, layer_bwrite }, { &vop_bmap_desc, layer_bmap }, { &vop_getpages_desc, layer_getpages }, { &vop_putpages_desc, layer_putpages }, Index: src/sys/miscfs/overlay/overlay_vnops.c diff -u src/sys/miscfs/overlay/overlay_vnops.c:1.18 src/sys/miscfs/overlay/overlay_vnops.c:1.19 --- src/sys/miscfs/overlay/overlay_vnops.c:1.18 Mon Jan 10 11:11:03 2011 +++ src/sys/miscfs/overlay/overlay_vnops.c Mon Jul 11 08:27:39 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: overlay_vnops.c,v 1.18 2011/01/10 11:11:03 hannken Exp $ */ +/* $NetBSD: overlay_vnops.c,v 1.19 2011/07/11 08:27:39 hannken Exp $ */ /* * Copyright (c) 1999, 2000 National Aeronautics & Space Administration @@ -67,7 +67,7 @@ * * Ancestors: * @(#)lofs_vnops.c 1.2 (Berkeley) 6/18/92 - * $Id: overlay_vnops.c,v 1.18 2011/01/10 11:11:03 hannken Exp $ + * $Id: overlay_vnops.c,v 1.19 2011/07/11 08:27:39 hannken Exp $ * ...and... * @(#)null_vnodeops.c 1.20 92/07/07 UCLA Ficus project */ @@ -126,7 +126,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: overlay_vnops.c,v 1.18 2011/01/10 11:11:03 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: overlay_vnops.c,v 1.19 2011/07/11 08:27:39 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -163,7 +163,6 @@ { &vop_open_desc, layer_open }, /* mount option handling */ - { &vop_bwrite_desc, layer_bwrite }, { &vop_bmap_desc, layer_bmap }, { &vop_getpages_desc, layer_getpages }, { &vop_putpages_desc, layer_putpages }, Index: src/sys/miscfs/umapfs/umap_vnops.c diff -u src/sys/miscfs/umapfs/umap_vnops.c:1.52 src/sys/miscfs/umapfs/umap_vnops.c:1.53 --- src/sys/miscfs/umapfs/umap_vnops.c:1.52 Sun Apr 3 01:19:36 2011 +++ src/sys/miscfs/umapfs/umap_vnops.c Mon Jul 11 08:27:39 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: umap_vnops.c,v 1.52 2011/04/03 01:19:36 rmind Exp $ */ +/* $NetBSD: umap_vnops.c,v 1.53 2011/07/11 08:27:39 hannken Exp $ */ /* * Copyright (c) 1992, 1993 @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: umap_vnops.c,v 1.52 2011/04/03 01:19:36 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: umap_vnops.c,v 1.53 2011/07/11 08:27:39 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -96,7 +96,6 @@ { &vop_revoke_desc, layer_revoke }, { &vop_rmdir_desc, layer_rmdir }, - { &vop_bwrite_desc, layer_bwrite }, { &vop_bmap_desc, layer_bmap }, { &vop_getpages_desc, layer_getpages }, { &vop_putpages_desc, layer_putpages }, Index: src/sys/rump/include/rump/rumpvnode_if.h diff -u src/sys/rump/include/rump/rumpvnode_if.h:1.10 src/sys/rump/include/rump/rumpvnode_if.h:1.11 --- src/sys/rump/include/rump/rumpvnode_if.h:1.10 Mon Jul 4 08:07:31 2011 +++ src/sys/rump/include/rump/rumpvnode_if.h Mon Jul 11 08:27:39 2011 @@ -1,13 +1,13 @@ -/* $NetBSD: rumpvnode_if.h,v 1.10 2011/07/04 08:07:31 manu Exp $ */ +/* $NetBSD: rumpvnode_if.h,v 1.11 2011/07/11 08:27:39 hannken Exp $ */ /* * Warning: DO NOT EDIT! This file is automatically generated! * (Modifications made here may easily be lost!) * * Created from the file: - * NetBSD: vnode_if.src,v 1.60 2011/01/02 06:58:45 dholland Exp + * NetBSD: vnode_if.src,v 1.62 2011/07/11 08:23:00 hannken Exp * by the script: - * NetBSD: vnode_if.sh,v 1.56 2010/04/14 13:58:51 pooka Exp + * NetBSD: vnode_if.sh,v 1.58 2011/07/11 08:23:00 hannken Exp */ /* @@ -51,11 +51,7 @@ #include <stdbool.h> #endif -/* Special cases: */ -int RUMP_VOP_BWRITE(struct buf *); - -/* End of special cases */ - +int RUMP_VOP_BWRITE(struct vnode *, struct buf *); int RUMP_VOP_LOOKUP(struct vnode *, struct vnode **, struct componentname *); int RUMP_VOP_CREATE(struct vnode *, struct vnode **, struct componentname *, struct vattr *); @@ -106,8 +102,8 @@ int RUMP_VOP_CLOSEEXTATTR(struct vnode *, int, struct kauth_cred *); int RUMP_VOP_GETEXTATTR(struct vnode *, int, const char *, struct uio *, size_t *, struct kauth_cred *); -int RUMP_VOP_LISTEXTATTR(struct vnode *, int, struct uio *, size_t *, - int, struct kauth_cred *); +int RUMP_VOP_LISTEXTATTR(struct vnode *, int, struct uio *, size_t *, int, + struct kauth_cred *); int RUMP_VOP_OPENEXTATTR(struct vnode *, struct kauth_cred *); int RUMP_VOP_DELETEEXTATTR(struct vnode *, int, const char *, struct kauth_cred *); Index: src/sys/rump/librump/rumpvfs/rumpvnode_if.c diff -u src/sys/rump/librump/rumpvfs/rumpvnode_if.c:1.9 src/sys/rump/librump/rumpvfs/rumpvnode_if.c:1.10 --- src/sys/rump/librump/rumpvfs/rumpvnode_if.c:1.9 Mon Jul 4 08:07:31 2011 +++ src/sys/rump/librump/rumpvfs/rumpvnode_if.c Mon Jul 11 08:27:39 2011 @@ -1,13 +1,13 @@ -/* $NetBSD: rumpvnode_if.c,v 1.9 2011/07/04 08:07:31 manu Exp $ */ +/* $NetBSD: rumpvnode_if.c,v 1.10 2011/07/11 08:27:39 hannken Exp $ */ /* * Warning: DO NOT EDIT! This file is automatically generated! * (Modifications made here may easily be lost!) * * Created from the file: - * NetBSD: vnode_if.src,v 1.60 2011/01/02 06:58:45 dholland Exp + * NetBSD: vnode_if.src,v 1.62 2011/07/11 08:23:00 hannken Exp * by the script: - * NetBSD: vnode_if.sh,v 1.56 2010/04/14 13:58:51 pooka Exp + * NetBSD: vnode_if.sh,v 1.58 2011/07/11 08:23:00 hannken Exp */ /* @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rumpvnode_if.c,v 1.9 2011/07/04 08:07:31 manu Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rumpvnode_if.c,v 1.10 2011/07/11 08:27:39 hannken Exp $"); #include <sys/param.h> #include <sys/mount.h> @@ -50,22 +50,19 @@ #include <rump/rumpvnode_if.h> #include "rump_private.h" -/* Special cases: */ - int -RUMP_VOP_BWRITE(struct buf *bp) +RUMP_VOP_BWRITE(struct vnode *vp, + struct buf *bp) { int error; rump_schedule(); - error = VOP_BWRITE(bp); + error = VOP_BWRITE(vp, bp); rump_unschedule(); return error; } -/* End of special cases */ - int RUMP_VOP_LOOKUP(struct vnode *dvp, struct vnode **vpp, Index: src/sys/sys/param.h diff -u src/sys/sys/param.h:1.391 src/sys/sys/param.h:1.392 --- src/sys/sys/param.h:1.391 Tue Jun 28 09:47:00 2011 +++ src/sys/sys/param.h Mon Jul 11 08:27:39 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: param.h,v 1.391 2011/06/28 09:47:00 jruoho Exp $ */ +/* $NetBSD: param.h,v 1.392 2011/07/11 08:27:39 hannken Exp $ */ /*- * Copyright (c) 1982, 1986, 1989, 1993 @@ -63,7 +63,7 @@ * 2.99.9 (299000900) */ -#define __NetBSD_Version__ 599005400 /* NetBSD 5.99.54 */ +#define __NetBSD_Version__ 599005500 /* NetBSD 5.99.55 */ #define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \ (m) * 1000000) + (p) * 100) <= __NetBSD_Version__) Index: src/sys/sys/vnode_if.h diff -u src/sys/sys/vnode_if.h:1.81 src/sys/sys/vnode_if.h:1.82 --- src/sys/sys/vnode_if.h:1.81 Mon Jul 4 08:07:31 2011 +++ src/sys/sys/vnode_if.h Mon Jul 11 08:27:39 2011 @@ -1,13 +1,13 @@ -/* $NetBSD: vnode_if.h,v 1.81 2011/07/04 08:07:31 manu Exp $ */ +/* $NetBSD: vnode_if.h,v 1.82 2011/07/11 08:27:39 hannken Exp $ */ /* * Warning: DO NOT EDIT! This file is automatically generated! * (Modifications made here may easily be lost!) * * Created from the file: - * NetBSD: vnode_if.src,v 1.60 2011/01/02 06:58:45 dholland Exp + * NetBSD: vnode_if.src,v 1.62 2011/07/11 08:23:00 hannken Exp * by the script: - * NetBSD: vnode_if.sh,v 1.56 2010/04/14 13:58:51 pooka Exp + * NetBSD: vnode_if.sh,v 1.58 2011/07/11 08:23:00 hannken Exp */ /* @@ -50,17 +50,14 @@ #include <stdbool.h> #endif -/* Special cases: */ - #define VOP_BWRITE_DESCOFFSET 1 struct vop_bwrite_args { const struct vnodeop_desc *a_desc; + struct vnode *a_vp; struct buf *a_bp; }; extern const struct vnodeop_desc vop_bwrite_desc; -int VOP_BWRITE(struct buf *); - -/* End of special cases */ +int VOP_BWRITE(struct vnode *, struct buf *); #define VOP_LOOKUP_DESCOFFSET 2 struct vop_lookup_args { @@ -519,8 +516,8 @@ kauth_cred_t a_cred; }; extern const struct vnodeop_desc vop_listextattr_desc; -int VOP_LISTEXTATTR(struct vnode *, int, struct uio *, size_t *, - int, kauth_cred_t); +int VOP_LISTEXTATTR(struct vnode *, int, struct uio *, size_t *, int, + kauth_cred_t); #define VOP_OPENEXTATTR_DESCOFFSET 45 struct vop_openextattr_args { Index: src/sys/ufs/ext2fs/ext2fs_lookup.c diff -u src/sys/ufs/ext2fs/ext2fs_lookup.c:1.63 src/sys/ufs/ext2fs/ext2fs_lookup.c:1.64 --- src/sys/ufs/ext2fs/ext2fs_lookup.c:1.63 Tue Nov 30 10:43:06 2010 +++ src/sys/ufs/ext2fs/ext2fs_lookup.c Mon Jul 11 08:27:39 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: ext2fs_lookup.c,v 1.63 2010/11/30 10:43:06 dholland Exp $ */ +/* $NetBSD: ext2fs_lookup.c,v 1.64 2011/07/11 08:27:39 hannken Exp $ */ /* * Modified for NetBSD 1.2E @@ -48,7 +48,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ext2fs_lookup.c,v 1.63 2010/11/30 10:43:06 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ext2fs_lookup.c,v 1.64 2011/07/11 08:27:39 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -858,7 +858,7 @@ ep = (struct ext2fs_direct *)((char *)ep + dsize); } memcpy((void *)ep, (void *)&newdir, (u_int)newentrysize); - error = VOP_BWRITE(bp); + error = VOP_BWRITE(bp->b_vp, bp); dp->i_flag |= IN_CHANGE | IN_UPDATE; if (!error && dp->i_endoff && dp->i_endoff < ext2fs_size(dp)) error = ext2fs_truncate(dvp, (off_t)dp->i_endoff, IO_SYNC, @@ -896,7 +896,7 @@ if (error != 0) return (error); ep->e2d_ino = 0; - error = VOP_BWRITE(bp); + error = VOP_BWRITE(bp->b_vp, bp); dp->i_flag |= IN_CHANGE | IN_UPDATE; return (error); } @@ -908,7 +908,7 @@ if (error != 0) return (error); ep->e2d_reclen = h2fs16(fs2h16(ep->e2d_reclen) + dp->i_reclen); - error = VOP_BWRITE(bp); + error = VOP_BWRITE(bp->b_vp, bp); dp->i_flag |= IN_CHANGE | IN_UPDATE; return (error); } @@ -937,7 +937,7 @@ } else { ep->e2d_type = 0; } - error = VOP_BWRITE(bp); + error = VOP_BWRITE(bp->b_vp, bp); dp->i_flag |= IN_CHANGE | IN_UPDATE; return (error); } Index: src/sys/ufs/lfs/lfs.h diff -u src/sys/ufs/lfs/lfs.h:1.133 src/sys/ufs/lfs/lfs.h:1.134 --- src/sys/ufs/lfs/lfs.h:1.133 Tue Feb 16 23:20:30 2010 +++ src/sys/ufs/lfs/lfs.h Mon Jul 11 08:27:40 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs.h,v 1.133 2010/02/16 23:20:30 mlelstv Exp $ */ +/* $NetBSD: lfs.h,v 1.134 2011/07/11 08:27:40 hannken Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -280,7 +280,7 @@ # define DLOG(a) lfs_debug_log a # else /* ! DEBUG */ # define LFS_BCLEAN_LOG(fs, bp) -# define LFS_BWRITE_LOG(bp) VOP_BWRITE((bp)) +# define LFS_BWRITE_LOG(bp) VOP_BWRITE((bp)->b_vp, (bp)) # define DLOG(a) # endif /* ! DEBUG */ #else /* ! _KERNEL */ Index: src/sys/ufs/lfs/lfs_balloc.c diff -u src/sys/ufs/lfs/lfs_balloc.c:1.69 src/sys/ufs/lfs/lfs_balloc.c:1.70 --- src/sys/ufs/lfs/lfs_balloc.c:1.69 Tue Feb 16 23:20:30 2010 +++ src/sys/ufs/lfs/lfs_balloc.c Mon Jul 11 08:27:40 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_balloc.c,v 1.69 2010/02/16 23:20:30 mlelstv Exp $ */ +/* $NetBSD: lfs_balloc.c,v 1.70 2011/07/11 08:27:40 hannken Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_balloc.c,v 1.69 2010/02/16 23:20:30 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_balloc.c,v 1.70 2011/07/11 08:27:40 hannken Exp $"); #if defined(_KERNEL_OPT) #include "opt_quota.h" @@ -163,7 +163,7 @@ uvm_vnp_setsize(vp, ip->i_size); ip->i_flag |= IN_CHANGE | IN_UPDATE; if (bpp) - (void) VOP_BWRITE(bp); + (void) VOP_BWRITE(bp->b_vp, bp); } } @@ -283,7 +283,7 @@ ibp->b_flags, curproc->p_pid); } #endif - if ((error = VOP_BWRITE(ibp))) + if ((error = VOP_BWRITE(ibp->b_vp, ibp))) return error; } } @@ -341,7 +341,7 @@ ibp->b_flags, curproc->p_pid); } #endif - VOP_BWRITE(ibp); + VOP_BWRITE(ibp->b_vp, ibp); } } else if (bpp && !(bp->b_oflags & (BO_DONE|BO_DELWRI))) { /* Index: src/sys/ufs/lfs/lfs_bio.c diff -u src/sys/ufs/lfs/lfs_bio.c:1.119 src/sys/ufs/lfs/lfs_bio.c:1.120 --- src/sys/ufs/lfs/lfs_bio.c:1.119 Sun Jun 12 03:36:01 2011 +++ src/sys/ufs/lfs/lfs_bio.c Mon Jul 11 08:27:40 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_bio.c,v 1.119 2011/06/12 03:36:01 rmind Exp $ */ +/* $NetBSD: lfs_bio.c,v 1.120 2011/07/11 08:27:40 hannken Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003, 2008 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_bio.c,v 1.119 2011/06/12 03:36:01 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_bio.c,v 1.120 2011/07/11 08:27:40 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -351,6 +351,7 @@ lfs_bwrite(void *v) { struct vop_bwrite_args /* { + struct vnode *a_vp; struct buf *a_bp; } */ *ap = v; struct buf *bp = ap->a_bp; Index: src/sys/ufs/lfs/lfs_inode.c diff -u src/sys/ufs/lfs/lfs_inode.c:1.124 src/sys/ufs/lfs/lfs_inode.c:1.125 --- src/sys/ufs/lfs/lfs_inode.c:1.124 Thu Jun 16 09:21:03 2011 +++ src/sys/ufs/lfs/lfs_inode.c Mon Jul 11 08:27:40 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_inode.c,v 1.124 2011/06/16 09:21:03 hannken Exp $ */ +/* $NetBSD: lfs_inode.c,v 1.125 2011/07/11 08:27:40 hannken Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_inode.c,v 1.124 2011/06/16 09:21:03 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_inode.c,v 1.125 2011/07/11 08:27:40 hannken Exp $"); #if defined(_KERNEL_OPT) #include "opt_quota.h" @@ -312,7 +312,7 @@ return (error); oip->i_ffs1_size = oip->i_size = length; uvm_vnp_setsize(ovp, length); - (void) VOP_BWRITE(bp); + (void) VOP_BWRITE(bp->b_vp, bp); oip->i_flag |= IN_CHANGE | IN_UPDATE; oip->i_lfs_hiblk = lblkno(fs, oip->i_size + fs->lfs_bsize - 1) - 1; return (lfs_update(ovp, NULL, NULL, 0)); @@ -365,7 +365,7 @@ } if (bp->b_oflags & BO_DELWRI) fs->lfs_avail += odb - btofsb(fs, size); - (void) VOP_BWRITE(bp); + (void) VOP_BWRITE(bp->b_vp, bp); } else { /* vp->v_type == VREG && length < osize && offset != 0 */ /* * When truncating a regular file down to a non-block-aligned @@ -758,7 +758,7 @@ memset((void *)&bap[last + 1], 0, /* XXX ondisk32 */ (u_int)(NINDIR(fs) - (last + 1)) * sizeof (int32_t)); - error = VOP_BWRITE(bp); + error = VOP_BWRITE(bp->b_vp, bp); if (error) allerror = error; bap = copy; Index: src/sys/ufs/lfs/lfs_segment.c diff -u src/sys/ufs/lfs/lfs_segment.c:1.221 src/sys/ufs/lfs/lfs_segment.c:1.222 --- src/sys/ufs/lfs/lfs_segment.c:1.221 Sun Jun 12 03:36:01 2011 +++ src/sys/ufs/lfs/lfs_segment.c Mon Jul 11 08:27:40 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_segment.c,v 1.221 2011/06/12 03:36:01 rmind Exp $ */ +/* $NetBSD: lfs_segment.c,v 1.222 2011/07/11 08:27:40 hannken Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.221 2011/06/12 03:36:01 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.222 2011/07/11 08:27:40 hannken Exp $"); #ifdef DEBUG # define vndebug(vp, str) do { \ @@ -1480,7 +1480,7 @@ ip->i_ffs1_blocks += bb; /* XXX ondisk32 */ ((int32_t *)bp->b_data)[ap->in_off] = ndaddr; - (void) VOP_BWRITE(bp); + (void) VOP_BWRITE(bp->b_vp, bp); } KASSERT(ooff == 0 || ooff == UNWRITTEN || ooff == daddr); Index: src/sys/ufs/lfs/lfs_vfsops.c diff -u src/sys/ufs/lfs/lfs_vfsops.c:1.289 src/sys/ufs/lfs/lfs_vfsops.c:1.290 --- src/sys/ufs/lfs/lfs_vfsops.c:1.289 Sun Jun 12 03:36:01 2011 +++ src/sys/ufs/lfs/lfs_vfsops.c Mon Jul 11 08:27:40 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_vfsops.c,v 1.289 2011/06/12 03:36:01 rmind Exp $ */ +/* $NetBSD: lfs_vfsops.c,v 1.290 2011/07/11 08:27:40 hannken Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003, 2007, 2007 @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_vfsops.c,v 1.289 2011/06/12 03:36:01 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_vfsops.c,v 1.290 2011/07/11 08:27:40 hannken Exp $"); #if defined(_KERNEL_OPT) #include "opt_lfs.h" @@ -1785,7 +1785,7 @@ if (devvp->v_type == VBLK) { bp->b_dev = devvp->v_rdev; } - VOP_BWRITE(bp); + VOP_BWRITE(bp->b_vp, bp); while (lfs_gatherblock(sp, bp, NULL)) continue; } @@ -2023,7 +2023,7 @@ &bp) != 0) panic("balloc extending ifile"); memset(bp->b_data, 0, fs->lfs_bsize); - VOP_BWRITE(bp); + VOP_BWRITE(bp->b_vp, bp); } /* Register new ifile size */ @@ -2050,7 +2050,7 @@ NOCRED, 0, &obp)) panic("resize: bread src blk failed"); memcpy(bp->b_data, obp->b_data, fs->lfs_bsize); - VOP_BWRITE(bp); + VOP_BWRITE(bp->b_vp, bp); brelse(obp, 0); } } @@ -2067,7 +2067,7 @@ memset(sup, 0, sizeof(*sup)); i++; } - VOP_BWRITE(bp); + VOP_BWRITE(bp->b_vp, bp); } } @@ -2124,7 +2124,7 @@ bread(ivp, 0, fs->lfs_bsize, NOCRED, B_MODIFY, &bp); ((CLEANERINFO *)bp->b_data)->clean = fs->lfs_nclean; ((CLEANERINFO *)bp->b_data)->dirty = fs->lfs_nseg - fs->lfs_nclean; - VOP_BWRITE(bp); + VOP_BWRITE(bp->b_vp, bp); /* Let Ifile accesses proceed */ VOP_UNLOCK(ivp); Index: src/sys/ufs/lfs/lfs_vnops.c diff -u src/sys/ufs/lfs/lfs_vnops.c:1.235 src/sys/ufs/lfs/lfs_vnops.c:1.236 --- src/sys/ufs/lfs/lfs_vnops.c:1.235 Sun Jun 12 03:36:01 2011 +++ src/sys/ufs/lfs/lfs_vnops.c Mon Jul 11 08:27:41 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_vnops.c,v 1.235 2011/06/12 03:36:01 rmind Exp $ */ +/* $NetBSD: lfs_vnops.c,v 1.236 2011/07/11 08:27:41 hannken Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.235 2011/06/12 03:36:01 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.236 2011/07/11 08:27:41 hannken Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -1606,7 +1606,7 @@ return EBUSY; } sup->su_flags |= SEGUSE_INVAL; - VOP_BWRITE(bp); + VOP_BWRITE(bp->b_vp, bp); return 0; case LFCNRESIZE: Index: src/sys/ufs/ufs/ufs_lookup.c diff -u src/sys/ufs/ufs/ufs_lookup.c:1.106 src/sys/ufs/ufs/ufs_lookup.c:1.107 --- src/sys/ufs/ufs/ufs_lookup.c:1.106 Tue Nov 30 10:43:06 2010 +++ src/sys/ufs/ufs/ufs_lookup.c Mon Jul 11 08:27:41 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: ufs_lookup.c,v 1.106 2010/11/30 10:43:06 dholland Exp $ */ +/* $NetBSD: ufs_lookup.c,v 1.107 2011/07/11 08:27:41 hannken Exp $ */ /* * Copyright (c) 1989, 1993 @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ufs_lookup.c,v 1.106 2010/11/30 10:43:06 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ufs_lookup.c,v 1.107 2011/07/11 08:27:41 hannken Exp $"); #ifdef _KERNEL_OPT #include "opt_ffs.h" @@ -805,7 +805,7 @@ dp->i_offset); } #endif - error = VOP_BWRITE(bp); + error = VOP_BWRITE(bp->b_vp, bp); vfs_timestamp(&ts); ret = UFS_UPDATE(dvp, &ts, &ts, UPDATE_DIROP); if (error == 0) @@ -933,7 +933,7 @@ (dp->i_offset & (dirblksiz - 1)), dp->i_offset & ~(dirblksiz - 1)); #endif - error = VOP_BWRITE(bp); + error = VOP_BWRITE(bp->b_vp, bp); dp->i_flag |= IN_CHANGE | IN_UPDATE; /* * If all went well, and the directory can be shortened, proceed @@ -1036,7 +1036,7 @@ ip->i_flag |= IN_CHANGE; UFS_WAPBL_UPDATE(ITOV(ip), NULL, NULL, 0); } - error = VOP_BWRITE(bp); + error = VOP_BWRITE(bp->b_vp, bp); dp->i_flag |= IN_CHANGE | IN_UPDATE; /* * If the last named reference to a snapshot goes away, @@ -1074,7 +1074,7 @@ DIP_ASSIGN(oip, nlink, oip->i_nlink); oip->i_flag |= IN_CHANGE; UFS_WAPBL_UPDATE(ITOV(oip), NULL, NULL, UPDATE_DIROP); - error = VOP_BWRITE(bp); + error = VOP_BWRITE(bp->b_vp, bp); dp->i_flag |= iflags; /* * If the last named reference to a snapshot goes away, Index: src/sys/ufs/ufs/ufs_readwrite.c diff -u src/sys/ufs/ufs/ufs_readwrite.c:1.98 src/sys/ufs/ufs/ufs_readwrite.c:1.99 --- src/sys/ufs/ufs/ufs_readwrite.c:1.98 Sun Jun 19 02:42:53 2011 +++ src/sys/ufs/ufs/ufs_readwrite.c Mon Jul 11 08:27:41 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: ufs_readwrite.c,v 1.98 2011/06/19 02:42:53 rmind Exp $ */ +/* $NetBSD: ufs_readwrite.c,v 1.99 2011/07/11 08:27:41 hannken Exp $ */ /*- * Copyright (c) 1993 @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: ufs_readwrite.c,v 1.98 2011/06/19 02:42:53 rmind Exp $"); +__KERNEL_RCSID(1, "$NetBSD: ufs_readwrite.c,v 1.99 2011/07/11 08:27:41 hannken Exp $"); #ifdef LFS_READWRITE #define FS struct lfs @@ -478,7 +478,7 @@ break; } #ifdef LFS_READWRITE - (void)VOP_BWRITE(bp); + (void)VOP_BWRITE(bp->b_vp, bp); lfs_reserve(fs, vp, NULL, -btofsb(fs, (NIADDR + 1) << fs->lfs_bshift)); need_unreserve = false; Index: src/sys/ufs/ufs/ufs_vnops.c diff -u src/sys/ufs/ufs/ufs_vnops.c:1.189 src/sys/ufs/ufs/ufs_vnops.c:1.190 --- src/sys/ufs/ufs/ufs_vnops.c:1.189 Sat Apr 30 14:24:27 2011 +++ src/sys/ufs/ufs/ufs_vnops.c Mon Jul 11 08:27:41 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: ufs_vnops.c,v 1.189 2011/04/30 14:24:27 hannken Exp $ */ +/* $NetBSD: ufs_vnops.c,v 1.190 2011/07/11 08:27:41 hannken Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -66,7 +66,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.189 2011/04/30 14:24:27 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.190 2011/07/11 08:27:41 hannken Exp $"); #if defined(_KERNEL_OPT) #include "opt_ffs.h" @@ -1439,7 +1439,7 @@ * We must write out the buffer containing the new directory body * before entering the new name in the parent. */ - if ((error = VOP_BWRITE(bp)) != 0) + if ((error = VOP_BWRITE(bp->b_vp, bp)) != 0) goto bad; if ((error = UFS_UPDATE(tvp, NULL, NULL, UPDATE_DIROP)) != 0) { goto bad;