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;

Reply via email to