Module Name: src Committed By: martin Date: Mon Oct 14 19:20:14 UTC 2019
Modified Files: src/sys/kern [netbsd-8]: vnode_if.c Log Message: regen (for ticket #1405) To generate a diff of this commit: cvs rdiff -u -r1.104.2.2 -r1.104.2.3 src/sys/kern/vnode_if.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/vnode_if.c diff -u src/sys/kern/vnode_if.c:1.104.2.2 src/sys/kern/vnode_if.c:1.104.2.3 --- src/sys/kern/vnode_if.c:1.104.2.2 Tue Jul 25 01:29:56 2017 +++ src/sys/kern/vnode_if.c Mon Oct 14 19:20:14 2019 @@ -1,13 +1,13 @@ -/* $NetBSD: vnode_if.c,v 1.104.2.2 2017/07/25 01:29:56 snj Exp $ */ +/* $NetBSD: vnode_if.c,v 1.104.2.3 2019/10/14 19:20:14 martin 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.75.2.2 2017/07/25 01:29:23 snj Exp + * NetBSD: vnode_if.src,v 1.75.2.3 2019/10/14 17:43:58 martin Exp * by the script: - * NetBSD: vnode_if.sh,v 1.64.4.1 2017/06/04 20:35:01 bouyer Exp + * NetBSD: vnode_if.sh,v 1.64.4.2 2019/10/14 17:43:58 martin Exp */ /* @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vnode_if.c,v 1.104.2.2 2017/07/25 01:29:56 snj Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vnode_if.c,v 1.104.2.3 2019/10/14 19:20:14 martin Exp $"); #include <sys/param.h> #include <sys/mount.h> @@ -49,7 +49,7 @@ __KERNEL_RCSID(0, "$NetBSD: vnode_if.c,v #include <sys/lock.h> #include <sys/fstrans.h> -enum fst_op { FST_NO, FST_YES, FST_TRY }; +enum fst_op { FST_NO, FST_YES, FST_LAZY, FST_TRY }; static inline int vop_pre(vnode_t *vp, struct mount **mp, bool *mpsafe, enum fst_op op) @@ -62,7 +62,7 @@ vop_pre(vnode_t *vp, struct mount **mp, KERNEL_LOCK(1, curlwp); } - if (op == FST_YES || op == FST_TRY) { + if (op == FST_YES || op == FST_LAZY || op == FST_TRY) { for (;;) { *mp = vp->v_mount; if (op == FST_TRY) { @@ -73,6 +73,8 @@ vop_pre(vnode_t *vp, struct mount **mp, } return error; } + } else if (op == FST_LAZY) { + fstrans_start_lazy(*mp); } else { fstrans_start(*mp); } @@ -91,7 +93,7 @@ static inline void vop_post(vnode_t *vp, struct mount *mp, bool mpsafe, enum fst_op op) { - if (op == FST_YES) { + if (op == FST_YES || op == FST_LAZY) { fstrans_done(mp); } @@ -1378,11 +1380,11 @@ VOP_STRATEGY(struct vnode *vp, a.a_desc = VDESC(vop_strategy); a.a_vp = vp; a.a_bp = bp; - error = vop_pre(vp, &mp, &mpsafe, FST_YES); + error = vop_pre(vp, &mp, &mpsafe, FST_LAZY); if (error) return error; error = (VCALL(vp, VOFFSET(vop_strategy), &a)); - vop_post(vp, mp, mpsafe, FST_YES); + vop_post(vp, mp, mpsafe, FST_LAZY); return error; }