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;