Module Name: src Committed By: hannken Date: Sun Jun 4 08:05:42 UTC 2017
Modified Files: src/share/man/man9: fstrans.9 src/sys/kern: vfs_mount.c vfs_trans.c vfs_vnode.c vnode_if.c src/sys/miscfs/genfs: genfs_io.c layer_vnops.c src/sys/rump/include/rump: rumpvnode_if.h src/sys/rump/librump/rumpkern: emul.c src/sys/rump/librump/rumpvfs: rumpvnode_if.c src/sys/sys: fstrans.h vnode_if.h src/sys/ufs/lfs: lfs_pages.c Log Message: Operations fstrans_start() and fstrans_start_nowait() now always use FSTRANS_SHARED as lock type so remove the lock type argument. File system state FSTRANS_SUSPENDING is now unused so remove it. Regen vnode_if files. Ride 8.99.1 less than a hour ago. To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 src/share/man/man9/fstrans.9 cvs rdiff -u -r1.65 -r1.66 src/sys/kern/vfs_mount.c cvs rdiff -u -r1.45 -r1.46 src/sys/kern/vfs_trans.c cvs rdiff -u -r1.95 -r1.96 src/sys/kern/vfs_vnode.c cvs rdiff -u -r1.105 -r1.106 src/sys/kern/vnode_if.c cvs rdiff -u -r1.68 -r1.69 src/sys/miscfs/genfs/genfs_io.c cvs rdiff -u -r1.66 -r1.67 src/sys/miscfs/genfs/layer_vnops.c cvs rdiff -u -r1.29 -r1.30 src/sys/rump/include/rump/rumpvnode_if.h cvs rdiff -u -r1.181 -r1.182 src/sys/rump/librump/rumpkern/emul.c cvs rdiff -u -r1.29 -r1.30 src/sys/rump/librump/rumpvfs/rumpvnode_if.c cvs rdiff -u -r1.10 -r1.11 src/sys/sys/fstrans.h cvs rdiff -u -r1.100 -r1.101 src/sys/sys/vnode_if.h cvs rdiff -u -r1.11 -r1.12 src/sys/ufs/lfs/lfs_pages.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/fstrans.9 diff -u src/share/man/man9/fstrans.9:1.24 src/share/man/man9/fstrans.9:1.25 --- src/share/man/man9/fstrans.9:1.24 Mon May 29 08:03:13 2017 +++ src/share/man/man9/fstrans.9 Sun Jun 4 08:05:41 2017 @@ -1,4 +1,4 @@ -.\" $NetBSD: fstrans.9,v 1.24 2017/05/29 08:03:13 wiz Exp $ +.\" $NetBSD: fstrans.9,v 1.25 2017/06/04 08:05:41 hannken Exp $ .\" .\" Copyright (c) 2007 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 May 29, 2017 +.Dd June 4, 2017 .Dt FSTRANS 9 .Os .Sh NAME @@ -46,9 +46,9 @@ .In sys/mount.h .In sys/fstrans.h .Ft void -.Fn fstrans_start "struct mount *mp" "enum fstrans_lock_type lock_type" +.Fn fstrans_start "struct mount *mp" .Ft int -.Fn fstrans_start_nowait "struct mount *mp" "enum fstrans_lock_type lock_type" +.Fn fstrans_start_nowait "struct mount *mp" .Ft void .Fn fstrans_done "struct mount *mp" .Ft int @@ -81,17 +81,6 @@ in a transaction, which is blocked by suspending the file system and while it is suspended. .Pp -Operations needed to sync the file system to its backing store must be -bracketed by -.Fn fstrans_start -and -.Fn fstrans_done -in a -.Em lazy -transaction, which is allowed while suspending the file system in order -to sync it to its backing store, but blocked while the file system is -suspended. -.Pp Transactions are per-thread and nestable: if a thread is already in a transaction, it can enter another transaction without blocking. Each @@ -108,12 +97,8 @@ to: .Bl -dash .It enter the -.Dv FSTRANS_SUSPENDING -to suspend all normal operations but allow syncing, -.It -enter the .Dv FSTRANS_SUSPENDED -state to suspend all operations once synced, and +state to suspend all operations, and .It restore to the .Dv FSTRANS_NORMAL @@ -140,24 +125,14 @@ The copy-on-write callback must be dises when the file system is done with it. .Sh FUNCTIONS .Bl -tag -width abcd -.It Fn fstrans_start "mp" "lock_type" -Enter a transaction of type -.Fa lock_type -on the file system +.It Fn fstrans_start "mp" +Enter a transaction on the file system .Fa mp in the current thread. If the file system is in a state that blocks such transactions, wait until it changes state to one that does not. -.Bl -tag -width FSTRANS_SHARED -.It Dv FSTRANS_SHARED -If the file system is suspending or suspended, wait until it is -resumed. -Intended for normal file system operations. -.It Dv FSTRANS_LAZY +.Pp If the file system is suspended, wait until it is resumed. -Intended for operations needed to sync the file system to its backing -store in order to suspend it. -.El .Pp However, if the current thread is already in a transaction on .Fa mp , @@ -166,14 +141,12 @@ will enter a nested transaction and retu waiting. .Pp May sleep. -.It Fn fstrans_start_nowait "mp" "lock_type" +.It Fn fstrans_start_nowait "mp" Like .Fn fstrans_start , but return .Dv EBUSY -immediately if -.Fa lock_type -transactions are blocked in its current state. +immediately if transactions are blocked in its current state. .Pp May sleep nevertheless on internal locks. .It Fn fstrans_done "mp" @@ -192,15 +165,9 @@ to and wait for all transactions not allowed in .Fa new_state to complete. -.Bl -tag -width FSTRANS_SUSPENDING +.Bl -tag -width FSTRANS_SUSPENDED .It Dv FSTRANS_NORMAL Allow all transactions. -.It Dv FSTRANS_SUSPENDING -Block -.Dv FSTRANS_SHARED -transactions but allow -.Dv FSTRANS_LAZY -transactions. .It Dv FSTRANS_SUSPENDED Block all transactions. .El @@ -277,12 +244,6 @@ xxx_suspendctl(struct mount *mp, int cmd switch (cmd) { case SUSPEND_SUSPEND: - error = fstrans_setstate(mp, FSTRANS_SUSPENDING); - if (error) - return error; - - /* Sync file system state to disk. */ - return fstrans_setstate(mp, FSTRANS_SUSPENDED); case SUSPEND_RESUME: @@ -303,7 +264,7 @@ xxx_create(void *v) struct mount *mp = ap-\*[Gt]a_dvp-\*[Gt]v_mount; int error; - fstrans_start(mp, FSTRANS_SHARED); + fstrans_start(mp); /* Actually create the node. */ Index: src/sys/kern/vfs_mount.c diff -u src/sys/kern/vfs_mount.c:1.65 src/sys/kern/vfs_mount.c:1.66 --- src/sys/kern/vfs_mount.c:1.65 Thu Jun 1 02:45:13 2017 +++ src/sys/kern/vfs_mount.c Sun Jun 4 08:05:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_mount.c,v 1.65 2017/06/01 02:45:13 chs Exp $ */ +/* $NetBSD: vfs_mount.c,v 1.66 2017/06/04 08:05:42 hannken Exp $ */ /*- * Copyright (c) 1997-2011 The NetBSD Foundation, Inc. @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_mount.c,v 1.65 2017/06/01 02:45:13 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_mount.c,v 1.66 2017/06/04 08:05:42 hannken Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -319,9 +319,9 @@ _vfs_busy(struct mount *mp, bool wait) KASSERT(mp->mnt_refcnt > 0); if (wait) { - fstrans_start(mp, FSTRANS_SHARED); + fstrans_start(mp); } else { - if (fstrans_start_nowait(mp, FSTRANS_SHARED)) + if (fstrans_start_nowait(mp)) return EBUSY; } if (__predict_false((mp->mnt_iflag & IMNT_GONE) != 0)) { Index: src/sys/kern/vfs_trans.c diff -u src/sys/kern/vfs_trans.c:1.45 src/sys/kern/vfs_trans.c:1.46 --- src/sys/kern/vfs_trans.c:1.45 Sun May 7 08:24:20 2017 +++ src/sys/kern/vfs_trans.c Sun Jun 4 08:05:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_trans.c,v 1.45 2017/05/07 08:24:20 hannken Exp $ */ +/* $NetBSD: vfs_trans.c,v 1.46 2017/06/04 08:05:42 hannken Exp $ */ /*- * Copyright (c) 2007 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_trans.c,v 1.45 2017/05/07 08:24:20 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_trans.c,v 1.46 2017/06/04 08:05:42 hannken Exp $"); /* * File system transaction operations. @@ -48,12 +48,16 @@ __KERNEL_RCSID(0, "$NetBSD: vfs_trans.c, #include <sys/mount.h> #include <sys/pserialize.h> #include <sys/vnode.h> -#define _FSTRANS_API_PRIVATE #include <sys/fstrans.h> #include <sys/proc.h> #include <miscfs/specfs/specdev.h> +enum fstrans_lock_type { + FSTRANS_SHARED, /* Granted while not suspending */ + FSTRANS_EXCL /* Internal: exclusive lock */ +}; + struct fscow_handler { LIST_ENTRY(fscow_handler) ch_list; int (*ch_func)(void *, struct buf *, bool); @@ -89,6 +93,7 @@ static inline struct mount *fstrans_norm static void fstrans_lwp_dtor(void *); static void fstrans_mount_dtor(struct mount *); static struct fstrans_lwp_info *fstrans_get_lwp_info(struct mount *, bool); +static inline int _fstrans_start(struct mount *, enum fstrans_lock_type, int); static bool grant_lock(const enum fstrans_state, const enum fstrans_lock_type); static bool state_change_done(const struct mount *); static bool cow_state_change_done(const struct mount *); @@ -314,8 +319,6 @@ grant_lock(const enum fstrans_state stat return true; if (type == FSTRANS_EXCL) return true; - if (state == FSTRANS_SUSPENDING && type == FSTRANS_LAZY) - return true; return false; } @@ -324,7 +327,7 @@ grant_lock(const enum fstrans_state stat * Start a transaction. If this thread already has a transaction on this * file system increment the reference counter. */ -int +static inline int _fstrans_start(struct mount *mp, enum fstrans_lock_type lock_type, int wait) { int s; @@ -380,6 +383,22 @@ _fstrans_start(struct mount *mp, enum fs return 0; } +void +fstrans_start(struct mount *mp) +{ + int error __diagused; + + error = _fstrans_start(mp, FSTRANS_SHARED, 1); + KASSERT(error == 0); +} + +int +fstrans_start_nowait(struct mount *mp) +{ + + return _fstrans_start(mp, FSTRANS_SHARED, 0); +} + /* * Finish a transaction. */ @@ -502,7 +521,7 @@ fstrans_setstate(struct mount *mp, enum if (old_state != new_state) { if (old_state == FSTRANS_NORMAL) - fstrans_start(mp, FSTRANS_EXCL); + _fstrans_start(mp, FSTRANS_EXCL, 1); if (new_state == FSTRANS_NORMAL) fstrans_done(mp); } @@ -805,9 +824,6 @@ fstrans_print_lwp(struct proc *p, struct printf(" -"); } else { switch (fli->fli_lock_type) { - case FSTRANS_LAZY: - printf(" lazy"); - break; case FSTRANS_SHARED: printf(" shared"); break; @@ -842,9 +858,6 @@ fstrans_print_mount(struct mount *mp, in case FSTRANS_NORMAL: printf("state normal\n"); break; - case FSTRANS_SUSPENDING: - printf("state suspending\n"); - break; case FSTRANS_SUSPENDED: printf("state suspended\n"); break; Index: src/sys/kern/vfs_vnode.c diff -u src/sys/kern/vfs_vnode.c:1.95 src/sys/kern/vfs_vnode.c:1.96 --- src/sys/kern/vfs_vnode.c:1.95 Sun Jun 4 08:02:26 2017 +++ src/sys/kern/vfs_vnode.c Sun Jun 4 08:05:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_vnode.c,v 1.95 2017/06/04 08:02:26 hannken Exp $ */ +/* $NetBSD: vfs_vnode.c,v 1.96 2017/06/04 08:05:42 hannken Exp $ */ /*- * Copyright (c) 1997-2011 The NetBSD Foundation, Inc. @@ -156,7 +156,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.95 2017/06/04 08:02:26 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.96 2017/06/04 08:05:42 hannken Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -526,7 +526,7 @@ vdrain_remove(vnode_t *vp) return; } mp = vp->v_mount; - if (fstrans_start_nowait(mp, FSTRANS_SHARED) != 0) { + if (fstrans_start_nowait(mp) != 0) { mutex_exit(vp->v_interlock); return; } @@ -556,7 +556,7 @@ vdrain_vrele(vnode_t *vp) KASSERT(mutex_owned(&vdrain_lock)); mp = vp->v_mount; - if (fstrans_start_nowait(mp, FSTRANS_SHARED) != 0) + if (fstrans_start_nowait(mp) != 0) return; /* @@ -1561,7 +1561,7 @@ vcache_reclaim(vnode_t *vp) vip->vi_key.vk_key = temp_key; mutex_exit(&vcache_lock); - fstrans_start(mp, FSTRANS_SHARED); + fstrans_start(mp); /* * Clean out any cached data associated with the vnode. Index: src/sys/kern/vnode_if.c diff -u src/sys/kern/vnode_if.c:1.105 src/sys/kern/vnode_if.c:1.106 --- src/sys/kern/vnode_if.c:1.105 Sun Jun 4 08:00:27 2017 +++ src/sys/kern/vnode_if.c Sun Jun 4 08:05:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: vnode_if.c,v 1.105 2017/06/04 08:00:27 hannken Exp $ */ +/* $NetBSD: vnode_if.c,v 1.106 2017/06/04 08:05:42 hannken Exp $ */ /* * Warning: DO NOT EDIT! This file is automatically generated! @@ -7,7 +7,7 @@ * Created from the file: * NetBSD: vnode_if.src,v 1.76 2017/06/04 07:59:17 hannken Exp * by the script: - * NetBSD: vnode_if.sh,v 1.65 2017/06/04 07:59:17 hannken Exp + * NetBSD: vnode_if.sh,v 1.66 2017/06/04 08:03:26 hannken Exp */ /* @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vnode_if.c,v 1.105 2017/06/04 08:00:27 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vnode_if.c,v 1.106 2017/06/04 08:05:42 hannken Exp $"); #include <sys/param.h> #include <sys/mount.h> @@ -66,7 +66,7 @@ vop_pre(vnode_t *vp, struct mount **mp, for (;;) { *mp = vp->v_mount; if (op == FST_TRY) { - error = fstrans_start_nowait(*mp, FSTRANS_SHARED); + error = fstrans_start_nowait(*mp); if (error) { if (!*mpsafe) { KERNEL_UNLOCK_ONE(curlwp); @@ -74,7 +74,7 @@ vop_pre(vnode_t *vp, struct mount **mp, return error; } } else { - fstrans_start(*mp, FSTRANS_SHARED); + fstrans_start(*mp); } if (__predict_true(*mp == vp->v_mount)) break; Index: src/sys/miscfs/genfs/genfs_io.c diff -u src/sys/miscfs/genfs/genfs_io.c:1.68 src/sys/miscfs/genfs/genfs_io.c:1.69 --- src/sys/miscfs/genfs/genfs_io.c:1.68 Sat Apr 1 23:34:17 2017 +++ src/sys/miscfs/genfs/genfs_io.c Sun Jun 4 08:05:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: genfs_io.c,v 1.68 2017/04/01 23:34:17 dholland Exp $ */ +/* $NetBSD: genfs_io.c,v 1.69 2017/06/04 08:05:42 hannken Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1993 @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: genfs_io.c,v 1.68 2017/04/01 23:34:17 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: genfs_io.c,v 1.69 2017/06/04 08:05:42 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -293,7 +293,7 @@ startover: if (trans_mount == NULL) { trans_mount = vp->v_mount; - fstrans_start(trans_mount, FSTRANS_SHARED); + fstrans_start(trans_mount); /* * check if this vnode is still valid. */ @@ -891,7 +891,7 @@ retry: if (pagedaemon) { /* Pagedaemon must not sleep here. */ trans_mp = vp->v_mount; - error = fstrans_start_nowait(trans_mp, FSTRANS_SHARED); + error = fstrans_start_nowait(trans_mp); if (error) { mutex_exit(slock); return error; @@ -904,7 +904,7 @@ retry: */ mutex_exit(slock); trans_mp = vp->v_mount; - fstrans_start(trans_mp, FSTRANS_SHARED); + fstrans_start(trans_mp); if (vp->v_mount != trans_mp) { fstrans_done(trans_mp); trans_mp = NULL; Index: src/sys/miscfs/genfs/layer_vnops.c diff -u src/sys/miscfs/genfs/layer_vnops.c:1.66 src/sys/miscfs/genfs/layer_vnops.c:1.67 --- src/sys/miscfs/genfs/layer_vnops.c:1.66 Fri May 26 14:21:01 2017 +++ src/sys/miscfs/genfs/layer_vnops.c Sun Jun 4 08:05:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: layer_vnops.c,v 1.66 2017/05/26 14:21:01 riastradh Exp $ */ +/* $NetBSD: layer_vnops.c,v 1.67 2017/06/04 08:05:42 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.66 2017/05/26 14:21:01 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: layer_vnops.c,v 1.67 2017/06/04 08:05:42 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -806,7 +806,7 @@ layer_getpages(void *v) /* Just pass the request on to the underlying layer. */ mutex_exit(vp->v_interlock); - fstrans_start(mp, FSTRANS_SHARED); + fstrans_start(mp); mutex_enter(vp->v_interlock); if (mp == vp->v_mount) { /* Will release the interlock. */ Index: src/sys/rump/include/rump/rumpvnode_if.h diff -u src/sys/rump/include/rump/rumpvnode_if.h:1.29 src/sys/rump/include/rump/rumpvnode_if.h:1.30 --- src/sys/rump/include/rump/rumpvnode_if.h:1.29 Sun Jun 4 08:00:27 2017 +++ src/sys/rump/include/rump/rumpvnode_if.h Sun Jun 4 08:05:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpvnode_if.h,v 1.29 2017/06/04 08:00:27 hannken Exp $ */ +/* $NetBSD: rumpvnode_if.h,v 1.30 2017/06/04 08:05:42 hannken Exp $ */ /* * Warning: DO NOT EDIT! This file is automatically generated! @@ -7,7 +7,7 @@ * Created from the file: * NetBSD: vnode_if.src,v 1.76 2017/06/04 07:59:17 hannken Exp * by the script: - * NetBSD: vnode_if.sh,v 1.65 2017/06/04 07:59:17 hannken Exp + * NetBSD: vnode_if.sh,v 1.66 2017/06/04 08:03:26 hannken Exp */ /* Index: src/sys/rump/librump/rumpkern/emul.c diff -u src/sys/rump/librump/rumpkern/emul.c:1.181 src/sys/rump/librump/rumpkern/emul.c:1.182 --- src/sys/rump/librump/rumpkern/emul.c:1.181 Wed Feb 22 11:20:59 2017 +++ src/sys/rump/librump/rumpkern/emul.c Sun Jun 4 08:05:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: emul.c,v 1.181 2017/02/22 11:20:59 hannken Exp $ */ +/* $NetBSD: emul.c,v 1.182 2017/06/04 08:05:42 hannken Exp $ */ /* * Copyright (c) 2007-2011 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: emul.c,v 1.181 2017/02/22 11:20:59 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: emul.c,v 1.182 2017/06/04 08:05:42 hannken Exp $"); #include <sys/param.h> #include <sys/cprng.h> @@ -243,14 +243,22 @@ __strong_alias(_delay,rump_delay); /* Weak aliases for fstrans to be used unless librumpvfs is present. */ -int rump__fstrans_start(struct mount *, enum fstrans_lock_type, int); +void rump_fstrans_start(struct mount *); +void +rump_fstrans_start(struct mount *mp) +{ + +} +__weak_alias(fstrans_start,rump_fstrans_start); + +int rump_fstrans_start_nowait(struct mount *); int -rump__fstrans_start(struct mount *mp, enum fstrans_lock_type lock, int wait) +rump_fstrans_start_nowait(struct mount *mp) { return 0; } -__weak_alias(_fstrans_start,rump__fstrans_start); +__weak_alias(fstrans_start_nowait,rump_fstrans_start_nowait); void rump_fstrans_done(struct mount *); void Index: src/sys/rump/librump/rumpvfs/rumpvnode_if.c diff -u src/sys/rump/librump/rumpvfs/rumpvnode_if.c:1.29 src/sys/rump/librump/rumpvfs/rumpvnode_if.c:1.30 --- src/sys/rump/librump/rumpvfs/rumpvnode_if.c:1.29 Sun Jun 4 08:00:27 2017 +++ src/sys/rump/librump/rumpvfs/rumpvnode_if.c Sun Jun 4 08:05:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpvnode_if.c,v 1.29 2017/06/04 08:00:27 hannken Exp $ */ +/* $NetBSD: rumpvnode_if.c,v 1.30 2017/06/04 08:05:42 hannken Exp $ */ /* * Warning: DO NOT EDIT! This file is automatically generated! @@ -7,7 +7,7 @@ * Created from the file: * NetBSD: vnode_if.src,v 1.76 2017/06/04 07:59:17 hannken Exp * by the script: - * NetBSD: vnode_if.sh,v 1.65 2017/06/04 07:59:17 hannken Exp + * NetBSD: vnode_if.sh,v 1.66 2017/06/04 08:03:26 hannken Exp */ /* @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rumpvnode_if.c,v 1.29 2017/06/04 08:00:27 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rumpvnode_if.c,v 1.30 2017/06/04 08:05:42 hannken Exp $"); #include <sys/param.h> #include <sys/mount.h> Index: src/sys/sys/fstrans.h diff -u src/sys/sys/fstrans.h:1.10 src/sys/sys/fstrans.h:1.11 --- src/sys/sys/fstrans.h:1.10 Fri Nov 7 00:15:42 2008 +++ src/sys/sys/fstrans.h Sun Jun 4 08:05:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: fstrans.h,v 1.10 2008/11/07 00:15:42 joerg Exp $ */ +/* $NetBSD: fstrans.h,v 1.11 2017/06/04 08:05:42 hannken Exp $ */ /*- * Copyright (c) 2007 The NetBSD Foundation, Inc. @@ -41,25 +41,14 @@ #define SUSPEND_SUSPEND 0x0001 /* VFS_SUSPENDCTL: suspend */ #define SUSPEND_RESUME 0x0002 /* VFS_SUSPENDCTL: resume */ -enum fstrans_lock_type { - FSTRANS_LAZY = 1, /* Granted while not suspended */ - FSTRANS_SHARED = 2 /* Granted while not suspending */ -#ifdef _FSTRANS_API_PRIVATE - , - FSTRANS_EXCL = 3 /* Internal: exclusive lock */ -#endif /* _FSTRANS_API_PRIVATE */ -}; - enum fstrans_state { FSTRANS_NORMAL, - FSTRANS_SUSPENDING, FSTRANS_SUSPENDED }; void fstrans_init(void); -#define fstrans_start(mp, t) _fstrans_start((mp), (t), 1) -#define fstrans_start_nowait(mp, t) _fstrans_start((mp), (t), 0) -int _fstrans_start(struct mount *, enum fstrans_lock_type, int); +void fstrans_start(struct mount *); +int fstrans_start_nowait(struct mount *); void fstrans_done(struct mount *); int fstrans_is_owner(struct mount *); int fstrans_mount(struct mount *); Index: src/sys/sys/vnode_if.h diff -u src/sys/sys/vnode_if.h:1.100 src/sys/sys/vnode_if.h:1.101 --- src/sys/sys/vnode_if.h:1.100 Sun Jun 4 08:00:27 2017 +++ src/sys/sys/vnode_if.h Sun Jun 4 08:05:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: vnode_if.h,v 1.100 2017/06/04 08:00:27 hannken Exp $ */ +/* $NetBSD: vnode_if.h,v 1.101 2017/06/04 08:05:42 hannken Exp $ */ /* * Warning: DO NOT EDIT! This file is automatically generated! @@ -7,7 +7,7 @@ * Created from the file: * NetBSD: vnode_if.src,v 1.76 2017/06/04 07:59:17 hannken Exp * by the script: - * NetBSD: vnode_if.sh,v 1.65 2017/06/04 07:59:17 hannken Exp + * NetBSD: vnode_if.sh,v 1.66 2017/06/04 08:03:26 hannken Exp */ /* Index: src/sys/ufs/lfs/lfs_pages.c diff -u src/sys/ufs/lfs/lfs_pages.c:1.11 src/sys/ufs/lfs/lfs_pages.c:1.12 --- src/sys/ufs/lfs/lfs_pages.c:1.11 Sat Apr 1 17:34:21 2017 +++ src/sys/ufs/lfs/lfs_pages.c Sun Jun 4 08:05:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_pages.c,v 1.11 2017/04/01 17:34:21 maya Exp $ */ +/* $NetBSD: lfs_pages.c,v 1.12 2017/06/04 08:05:42 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_pages.c,v 1.11 2017/04/01 17:34:21 maya Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_pages.c,v 1.12 2017/06/04 08:05:42 hannken Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -596,7 +596,7 @@ retry: if (pagedaemon) { /* Pagedaemon must not sleep here. */ trans_mp = vp->v_mount; - error = fstrans_start_nowait(trans_mp, FSTRANS_SHARED); + error = fstrans_start_nowait(trans_mp); if (error) { mutex_exit(vp->v_interlock); return error; @@ -609,7 +609,7 @@ retry: */ mutex_exit(vp->v_interlock); trans_mp = vp->v_mount; - fstrans_start(trans_mp, FSTRANS_SHARED); + fstrans_start(trans_mp); if (vp->v_mount != trans_mp) { fstrans_done(trans_mp); trans_mp = NULL;