Module Name: src
Committed By: christos
Date: Sat Nov 23 13:35:37 UTC 2013
Modified Files:
src/sys/compat/common: vfs_syscalls_20.c
src/sys/fs/cd9660: cd9660_vfsops.c
src/sys/fs/filecorefs: filecore_vfsops.c
src/sys/fs/msdosfs: msdosfs_vfsops.c
src/sys/fs/ntfs: ntfs_vfsops.c
src/sys/fs/v7fs: v7fs_vfsops.c
src/sys/kern: kern_verifiedexec.c vfs_mount.c vfs_subr.c vfs_syscalls.c
vfs_trans.c
src/sys/miscfs/procfs: procfs_linux.c
src/sys/nfs: nfs_vfsops.c
src/sys/rump/librump/rumpvfs: rumpfs.c
src/sys/sys: mount.h
src/sys/ufs/ext2fs: ext2fs_vfsops.c
src/sys/ufs/ffs: ffs_vfsops.c
src/sys/ufs/lfs: lfs_bio.c lfs_vfsops.c
src/sys/ufs/mfs: mfs_vfsops.c
Log Message:
change the mountlist CIRCLEQ into a TAILQ
To generate a diff of this commit:
cvs rdiff -u -r1.35 -r1.36 src/sys/compat/common/vfs_syscalls_20.c
cvs rdiff -u -r1.79 -r1.80 src/sys/fs/cd9660/cd9660_vfsops.c
cvs rdiff -u -r1.71 -r1.72 src/sys/fs/filecorefs/filecore_vfsops.c
cvs rdiff -u -r1.102 -r1.103 src/sys/fs/msdosfs/msdosfs_vfsops.c
cvs rdiff -u -r1.89 -r1.90 src/sys/fs/ntfs/ntfs_vfsops.c
cvs rdiff -u -r1.8 -r1.9 src/sys/fs/v7fs/v7fs_vfsops.c
cvs rdiff -u -r1.129 -r1.130 src/sys/kern/kern_verifiedexec.c
cvs rdiff -u -r1.23 -r1.24 src/sys/kern/vfs_mount.c
cvs rdiff -u -r1.439 -r1.440 src/sys/kern/vfs_subr.c
cvs rdiff -u -r1.469 -r1.470 src/sys/kern/vfs_syscalls.c
cvs rdiff -u -r1.28 -r1.29 src/sys/kern/vfs_trans.c
cvs rdiff -u -r1.64 -r1.65 src/sys/miscfs/procfs/procfs_linux.c
cvs rdiff -u -r1.222 -r1.223 src/sys/nfs/nfs_vfsops.c
cvs rdiff -u -r1.120 -r1.121 src/sys/rump/librump/rumpvfs/rumpfs.c
cvs rdiff -u -r1.209 -r1.210 src/sys/sys/mount.h
cvs rdiff -u -r1.174 -r1.175 src/sys/ufs/ext2fs/ext2fs_vfsops.c
cvs rdiff -u -r1.290 -r1.291 src/sys/ufs/ffs/ffs_vfsops.c
cvs rdiff -u -r1.126 -r1.127 src/sys/ufs/lfs/lfs_bio.c
cvs rdiff -u -r1.315 -r1.316 src/sys/ufs/lfs/lfs_vfsops.c
cvs rdiff -u -r1.103 -r1.104 src/sys/ufs/mfs/mfs_vfsops.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/compat/common/vfs_syscalls_20.c
diff -u src/sys/compat/common/vfs_syscalls_20.c:1.35 src/sys/compat/common/vfs_syscalls_20.c:1.36
--- src/sys/compat/common/vfs_syscalls_20.c:1.35 Thu Jun 24 09:03:06 2010
+++ src/sys/compat/common/vfs_syscalls_20.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_syscalls_20.c,v 1.35 2010/06/24 13:03:06 hannken Exp $ */
+/* $NetBSD: vfs_syscalls_20.c,v 1.36 2013/11/23 13:35:36 christos Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_20.c,v 1.35 2010/06/24 13:03:06 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_20.c,v 1.36 2013/11/23 13:35:36 christos Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -214,7 +214,7 @@ compat_20_sys_getfsstat(struct lwp *l, c
sfsp = SCARG(uap, buf);
mutex_enter(&mountlist_lock);
count = 0;
- for (mp = CIRCLEQ_FIRST(&mountlist); mp != (void *)&mountlist;
+ for (mp = TAILQ_FIRST(&mountlist); mp != TAILQ_END(&mountlist);
mp = nmp) {
if (vfs_busy(mp, &nmp)) {
continue;
Index: src/sys/fs/cd9660/cd9660_vfsops.c
diff -u src/sys/fs/cd9660/cd9660_vfsops.c:1.79 src/sys/fs/cd9660/cd9660_vfsops.c:1.80
--- src/sys/fs/cd9660/cd9660_vfsops.c:1.79 Mon Sep 30 14:57:59 2013
+++ src/sys/fs/cd9660/cd9660_vfsops.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: cd9660_vfsops.c,v 1.79 2013/09/30 18:57:59 hannken Exp $ */
+/* $NetBSD: cd9660_vfsops.c,v 1.80 2013/11/23 13:35:36 christos Exp $ */
/*-
* Copyright (c) 1994
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cd9660_vfsops.c,v 1.79 2013/09/30 18:57:59 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cd9660_vfsops.c,v 1.80 2013/11/23 13:35:36 christos Exp $");
#if defined(_KERNEL_OPT)
#include "opt_compat_netbsd.h"
@@ -202,9 +202,7 @@ cd9660_mountroot(void)
vfs_destroy(mp);
return (error);
}
- mutex_enter(&mountlist_lock);
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
- mutex_exit(&mountlist_lock);
+ mountlist_append(mp);
(void)cd9660_statvfs(mp, &mp->mnt_stat);
vfs_unbusy(mp, false, NULL);
return (0);
Index: src/sys/fs/filecorefs/filecore_vfsops.c
diff -u src/sys/fs/filecorefs/filecore_vfsops.c:1.71 src/sys/fs/filecorefs/filecore_vfsops.c:1.72
--- src/sys/fs/filecorefs/filecore_vfsops.c:1.71 Mon Sep 30 14:57:59 2013
+++ src/sys/fs/filecorefs/filecore_vfsops.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: filecore_vfsops.c,v 1.71 2013/09/30 18:57:59 hannken Exp $ */
+/* $NetBSD: filecore_vfsops.c,v 1.72 2013/11/23 13:35:36 christos Exp $ */
/*-
* Copyright (c) 1994 The Regents of the University of California.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: filecore_vfsops.c,v 1.71 2013/09/30 18:57:59 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: filecore_vfsops.c,v 1.72 2013/11/23 13:35:36 christos Exp $");
#if defined(_KERNEL_OPT)
#include "opt_compat_netbsd.h"
@@ -216,9 +216,7 @@ filecore_mountroot(void)
vfs_destroy(mp);
return (error);
}
- mutex_enter(&mountlist_lock);
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
- mutex_exit(&mountlist_lock);
+ mountlist_append(mp);
(void)filecore_statvfs(mp, &mp->mnt_stat, p);
vfs_unbusy(mp, false, NULL);
return (0);
Index: src/sys/fs/msdosfs/msdosfs_vfsops.c
diff -u src/sys/fs/msdosfs/msdosfs_vfsops.c:1.102 src/sys/fs/msdosfs/msdosfs_vfsops.c:1.103
--- src/sys/fs/msdosfs/msdosfs_vfsops.c:1.102 Mon Sep 30 14:57:59 2013
+++ src/sys/fs/msdosfs/msdosfs_vfsops.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: msdosfs_vfsops.c,v 1.102 2013/09/30 18:57:59 hannken Exp $ */
+/* $NetBSD: msdosfs_vfsops.c,v 1.103 2013/11/23 13:35:36 christos Exp $ */
/*-
* Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank.
@@ -48,7 +48,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: msdosfs_vfsops.c,v 1.102 2013/09/30 18:57:59 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: msdosfs_vfsops.c,v 1.103 2013/11/23 13:35:36 christos Exp $");
#if defined(_KERNEL_OPT)
#include "opt_compat_netbsd.h"
@@ -269,9 +269,7 @@ msdosfs_mountroot(void)
return (error);
}
- mutex_enter(&mountlist_lock);
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
- mutex_exit(&mountlist_lock);
+ mountlist_append(mp);
(void)msdosfs_statvfs(mp, &mp->mnt_stat);
vfs_unbusy(mp, false, NULL);
return (0);
Index: src/sys/fs/ntfs/ntfs_vfsops.c
diff -u src/sys/fs/ntfs/ntfs_vfsops.c:1.89 src/sys/fs/ntfs/ntfs_vfsops.c:1.90
--- src/sys/fs/ntfs/ntfs_vfsops.c:1.89 Thu Oct 17 17:04:12 2013
+++ src/sys/fs/ntfs/ntfs_vfsops.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: ntfs_vfsops.c,v 1.89 2013/10/17 21:04:12 christos Exp $ */
+/* $NetBSD: ntfs_vfsops.c,v 1.90 2013/11/23 13:35:36 christos Exp $ */
/*-
* Copyright (c) 1998, 1999 Semen Ustimenko
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ntfs_vfsops.c,v 1.89 2013/10/17 21:04:12 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ntfs_vfsops.c,v 1.90 2013/11/23 13:35:36 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -118,9 +118,7 @@ ntfs_mountroot(void)
return (error);
}
- mutex_enter(&mountlist_lock);
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
- mutex_exit(&mountlist_lock);
+ mountlist_append(mp);
(void)ntfs_statvfs(mp, &mp->mnt_stat);
vfs_unbusy(mp, false, NULL);
return (0);
Index: src/sys/fs/v7fs/v7fs_vfsops.c
diff -u src/sys/fs/v7fs/v7fs_vfsops.c:1.8 src/sys/fs/v7fs/v7fs_vfsops.c:1.9
--- src/sys/fs/v7fs/v7fs_vfsops.c:1.8 Wed Nov 20 18:44:23 2013
+++ src/sys/fs/v7fs/v7fs_vfsops.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: v7fs_vfsops.c,v 1.8 2013/11/20 23:44:23 rmind Exp $ */
+/* $NetBSD: v7fs_vfsops.c,v 1.9 2013/11/23 13:35:36 christos Exp $ */
/*-
* Copyright (c) 2004, 2011 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: v7fs_vfsops.c,v 1.8 2013/11/20 23:44:23 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: v7fs_vfsops.c,v 1.9 2013/11/23 13:35:36 christos Exp $");
#if defined _KERNEL_OPT
#include "opt_v7fs.h"
#endif
@@ -578,9 +578,7 @@ v7fs_mountroot(void)
return error;
}
- mutex_enter(&mountlist_lock);
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
- mutex_exit(&mountlist_lock);
+ mountlist_append(mp);
vfs_unbusy(mp, false, NULL);
Index: src/sys/kern/kern_verifiedexec.c
diff -u src/sys/kern/kern_verifiedexec.c:1.129 src/sys/kern/kern_verifiedexec.c:1.130
--- src/sys/kern/kern_verifiedexec.c:1.129 Tue Mar 13 14:40:52 2012
+++ src/sys/kern/kern_verifiedexec.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_verifiedexec.c,v 1.129 2012/03/13 18:40:52 elad Exp $ */
+/* $NetBSD: kern_verifiedexec.c,v 1.130 2013/11/23 13:35:36 christos Exp $ */
/*-
* Copyright (c) 2005, 2006 Elad Efrat <[email protected]>
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_verifiedexec.c,v 1.129 2012/03/13 18:40:52 elad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_verifiedexec.c,v 1.130 2013/11/23 13:35:36 christos Exp $");
#include "opt_veriexec.h"
@@ -1552,7 +1552,7 @@ veriexec_dump(struct lwp *l, prop_array_
struct mount *mp, *nmp;
mutex_enter(&mountlist_lock);
- for (mp = CIRCLEQ_FIRST(&mountlist); mp != (void *)&mountlist;
+ for (mp = TAILQ_FIRST(&mountlist); mp != TAILQ_END(&mountlist);
mp = nmp) {
/* If it fails, the file-system is [being] unmounted. */
if (vfs_busy(mp, &nmp) != 0)
@@ -1575,7 +1575,7 @@ veriexec_flush(struct lwp *l)
int error = 0;
mutex_enter(&mountlist_lock);
- for (mp = CIRCLEQ_FIRST(&mountlist); mp != (void *)&mountlist;
+ for (mp = TAILQ_FIRST(&mountlist); mp != TAILQ_END(&mountlist);
mp = nmp) {
int lerror;
Index: src/sys/kern/vfs_mount.c
diff -u src/sys/kern/vfs_mount.c:1.23 src/sys/kern/vfs_mount.c:1.24
--- src/sys/kern/vfs_mount.c:1.23 Tue Oct 29 05:53:51 2013
+++ src/sys/kern/vfs_mount.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_mount.c,v 1.23 2013/10/29 09:53:51 hannken Exp $ */
+/* $NetBSD: vfs_mount.c,v 1.24 2013/11/23 13:35:36 christos 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.23 2013/10/29 09:53:51 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_mount.c,v 1.24 2013/11/23 13:35:36 christos Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -115,7 +115,7 @@ void
vfs_mount_sysinit(void)
{
- CIRCLEQ_INIT(&mountlist);
+ TAILQ_INIT(&mountlist);
mutex_init(&mountlist_lock, MUTEX_DEFAULT, IPL_NONE);
mutex_init(&mntvnode_lock, MUTEX_DEFAULT, IPL_NONE);
mutex_init(&vfs_list_lock, MUTEX_DEFAULT, IPL_NONE);
@@ -213,7 +213,7 @@ vfs_getnewfsid(struct mount *mp)
++xxxfs_mntid;
tfsid.__fsid_val[0] = makedev(mtype & 0xff, xxxfs_mntid);
tfsid.__fsid_val[1] = mtype;
- if (!CIRCLEQ_EMPTY(&mountlist)) {
+ if (!TAILQ_EMPTY(&mountlist)) {
while (vfs_getvfs(&tfsid)) {
tfsid.__fsid_val[0]++;
xxxfs_mntid++;
@@ -235,7 +235,7 @@ vfs_getvfs(fsid_t *fsid)
struct mount *mp;
mutex_enter(&mountlist_lock);
- CIRCLEQ_FOREACH(mp, &mountlist, mnt_list) {
+ TAILQ_FOREACH(mp, &mountlist, mnt_list) {
if (mp->mnt_stat.f_fsidx.__fsid_val[0] == fsid->__fsid_val[0] &&
mp->mnt_stat.f_fsidx.__fsid_val[1] == fsid->__fsid_val[1]) {
mutex_exit(&mountlist_lock);
@@ -293,7 +293,7 @@ vfs_busy(struct mount *mp, struct mount
mutex_exit(&mp->mnt_unmounting);
if (nextp != NULL) {
KASSERT(mutex_owned(&mountlist_lock));
- *nextp = CIRCLEQ_NEXT(mp, mnt_list);
+ *nextp = TAILQ_NEXT(mp, mnt_list);
}
return ENOENT;
}
@@ -333,7 +333,7 @@ vfs_unbusy(struct mount *mp, bool keepre
}
if (nextp != NULL) {
KASSERT(mutex_owned(&mountlist_lock));
- *nextp = CIRCLEQ_NEXT(mp, mnt_list);
+ *nextp = TAILQ_NEXT(mp, mnt_list);
}
}
@@ -455,7 +455,8 @@ vflush(struct mount *mp, vnode_t *skipvp
* and vclean() are called.
*/
mutex_enter(&mntvnode_lock);
- for (vp = TAILQ_FIRST(&mp->mnt_vnodelist); vp != NULL;
+ for (vp = TAILQ_FIRST(&mp->mnt_vnodelist);
+ vp != TAILQ_END(&mp->mnt_nodelist);
vp = vflushnext(mvp, &when)) {
vmark(mvp, vp);
if (vp->v_mount != mp || vismarker(vp))
@@ -533,8 +534,7 @@ vfs_scrubvnlist(struct mount *mp)
retry:
mutex_enter(&mntvnode_lock);
- for (vp = TAILQ_FIRST(&mp->mnt_vnodelist); vp; vp = nvp) {
- nvp = TAILQ_NEXT(vp, v_mntvnodes);
+ TAILQ_FOREACH_SAFE(vp, &mp->mnt_vnodelist, v_mntvnodes, nvp) {
mutex_enter(vp->v_interlock);
if ((vp->v_iflag & VI_CLEAN) != 0) {
TAILQ_REMOVE(&mp->mnt_vnodelist, vp, v_mntvnodes);
@@ -708,7 +708,7 @@ mount_domount(struct lwp *l, vnode_t **v
mp->mnt_iflag &= ~IMNT_WANTRDWR;
mutex_enter(&mountlist_lock);
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
+ TAILQ_INSERT_TAIL(&mountlist, mp, mnt_list);
mutex_exit(&mountlist_lock);
if ((mp->mnt_flag & (MNT_RDONLY | MNT_ASYNC)) == 0)
error = vfs_allocate_syncvnode(mp);
@@ -741,7 +741,7 @@ mount_domount(struct lwp *l, vnode_t **v
err_onmountlist:
mutex_enter(&mountlist_lock);
- CIRCLEQ_REMOVE(&mountlist, mp, mnt_list);
+ TAILQ_REMOVE(&mountlist, mp, mnt_list);
mp->mnt_iflag |= IMNT_GONE;
mutex_exit(&mountlist_lock);
@@ -864,9 +864,9 @@ dounmount(struct mount *mp, int flags, s
VOP_UNLOCK(coveredvp);
}
mutex_enter(&mountlist_lock);
- CIRCLEQ_REMOVE(&mountlist, mp, mnt_list);
+ TAILQ_REMOVE(&mountlist, mp, mnt_list);
mutex_exit(&mountlist_lock);
- if (TAILQ_FIRST(&mp->mnt_vnodelist) != NULL)
+ if (TAILQ_FIRST(&mp->mnt_vnodelist) != TAILQ_END(&mp->mnt_vnodelist))
panic("unmount: dangling vnode");
if (used_syncer)
mutex_exit(&syncer_mutex);
@@ -909,7 +909,7 @@ vfs_unmount_forceone(struct lwp *l)
nmp = NULL;
- CIRCLEQ_FOREACH_REVERSE(mp, &mountlist, mnt_list) {
+ TAILQ_FOREACH_REVERSE(mp, &mountlist, mntlist, mnt_list) {
if (nmp == NULL || mp->mnt_gen > nmp->mnt_gen) {
nmp = mp;
}
@@ -945,10 +945,7 @@ vfs_unmountall1(struct lwp *l, bool forc
bool any_error = false, progress = false;
int error;
- for (mp = CIRCLEQ_LAST(&mountlist);
- mp != (void *)&mountlist;
- mp = nmp) {
- nmp = CIRCLEQ_PREV(mp, mnt_list);
+ TAILQ_FOREACH_REVERSE_SAFE(mp, &mountlist, mntlist, mnt_list, nmp) {
#ifdef DEBUG
printf("unmounting %p %s (%s)...\n",
(void *)mp, mp->mnt_stat.f_mntonname,
@@ -1150,16 +1147,18 @@ done:
vrele(rootvp);
}
if (error == 0) {
+ struct mount *mp;
extern struct cwdinfo cwdi0;
- CIRCLEQ_FIRST(&mountlist)->mnt_flag |= MNT_ROOTFS;
- CIRCLEQ_FIRST(&mountlist)->mnt_op->vfs_refcount++;
+ mp = TAILQ_FIRST(&mountlist);
+ mp->mnt_flag |= MNT_ROOTFS;
+ mp->mnt_op->vfs_refcount++;
/*
* Get the vnode for '/'. Set cwdi0.cwdi_cdir to
* reference it.
*/
- error = VFS_ROOT(CIRCLEQ_FIRST(&mountlist), &rootvnode);
+ error = VFS_ROOT(mp, &rootvnode);
if (error)
panic("cannot find root vnode, error=%d", error);
cwdi0.cwdi_cdir = rootvnode;
@@ -1368,3 +1367,11 @@ makefstype(const char *type)
}
return rv;
}
+
+void
+mountlist_append(struct mount *mp)
+{
+ mutex_enter(&mountlist_lock);
+ TAILQ_INSERT_TAIL(&mountlist, mp, mnt_list);
+ mutex_exit(&mountlist_lock);
+}
Index: src/sys/kern/vfs_subr.c
diff -u src/sys/kern/vfs_subr.c:1.439 src/sys/kern/vfs_subr.c:1.440
--- src/sys/kern/vfs_subr.c:1.439 Sun Oct 27 12:19:33 2013
+++ src/sys/kern/vfs_subr.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_subr.c,v 1.439 2013/10/27 16:19:33 rmind Exp $ */
+/* $NetBSD: vfs_subr.c,v 1.440 2013/11/23 13:35:36 christos 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.439 2013/10/27 16:19:33 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_subr.c,v 1.440 2013/11/23 13:35:36 christos Exp $");
#include "opt_ddb.h"
#include "opt_compat_netbsd.h"
@@ -631,7 +631,7 @@ sysctl_kern_vnode(SYSCTLFN_ARGS)
sysctl_unlock();
mutex_enter(&mountlist_lock);
- for (mp = CIRCLEQ_FIRST(&mountlist); mp != (void *)&mountlist;
+ for (mp = TAILQ_FIRST(&mountlist); mp != TAILQ_END(&mountlist);
mp = nmp) {
if (vfs_busy(mp, &nmp)) {
continue;
@@ -1264,7 +1264,7 @@ printlockedvnodes(void)
printf("Locked vnodes\n");
mutex_enter(&mountlist_lock);
- for (mp = CIRCLEQ_FIRST(&mountlist); mp != (void *)&mountlist;
+ for (mp = TAILQ_FIRST(&mountlist); mp != TAILQ_END(&mountlist);
mp = nmp) {
if (vfs_busy(mp, &nmp)) {
continue;
Index: src/sys/kern/vfs_syscalls.c
diff -u src/sys/kern/vfs_syscalls.c:1.469 src/sys/kern/vfs_syscalls.c:1.470
--- src/sys/kern/vfs_syscalls.c:1.469 Sun Nov 17 20:31:42 2013
+++ src/sys/kern/vfs_syscalls.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_syscalls.c,v 1.469 2013/11/18 01:31:42 chs Exp $ */
+/* $NetBSD: vfs_syscalls.c,v 1.470 2013/11/23 13:35:36 christos Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.469 2013/11/18 01:31:42 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.470 2013/11/23 13:35:36 christos Exp $");
#ifdef _KERNEL_OPT
#include "opt_fileassoc.h"
@@ -622,7 +622,7 @@ do_sys_sync(struct lwp *l)
int asyncflag;
mutex_enter(&mountlist_lock);
- for (mp = CIRCLEQ_FIRST(&mountlist); mp != (void *)&mountlist;
+ for (mp = TAILQ_FIRST(&mountlist); mp != TAILQ_END(&mountlist);
mp = nmp) {
if (vfs_busy(mp, &nmp)) {
continue;
@@ -1237,7 +1237,7 @@ do_sys_getvfsstat(struct lwp *l, void *s
maxcount = bufsize / entry_sz;
mutex_enter(&mountlist_lock);
count = 0;
- for (mp = CIRCLEQ_FIRST(&mountlist); mp != (void *)&mountlist;
+ for (mp = TAILQ_FIRST(&mountlist); mp != TAILQ_END(&mountlist);
mp = nmp) {
if (vfs_busy(mp, &nmp)) {
continue;
Index: src/sys/kern/vfs_trans.c
diff -u src/sys/kern/vfs_trans.c:1.28 src/sys/kern/vfs_trans.c:1.29
--- src/sys/kern/vfs_trans.c:1.28 Fri Oct 25 16:38:10 2013
+++ src/sys/kern/vfs_trans.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_trans.c,v 1.28 2013/10/25 20:38:10 martin Exp $ */
+/* $NetBSD: vfs_trans.c,v 1.29 2013/11/23 13:35:36 christos 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.28 2013/10/25 20:38:10 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_trans.c,v 1.29 2013/11/23 13:35:36 christos Exp $");
/*
* File system transaction operations.
@@ -812,7 +812,7 @@ fstrans_dump(int full)
fstrans_print_lwp(p, l, full == 1);
printf("Fstrans state by mount:\n");
- CIRCLEQ_FOREACH(mp, &mountlist, mnt_list)
+ TAILQ_FOREACH(mp, &mountlist, mnt_list)
fstrans_print_mount(mp, full == 1);
}
#endif /* defined(DDB) */
Index: src/sys/miscfs/procfs/procfs_linux.c
diff -u src/sys/miscfs/procfs/procfs_linux.c:1.64 src/sys/miscfs/procfs/procfs_linux.c:1.65
--- src/sys/miscfs/procfs/procfs_linux.c:1.64 Sun Dec 18 22:02:31 2011
+++ src/sys/miscfs/procfs/procfs_linux.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: procfs_linux.c,v 1.64 2011/12/19 03:02:31 christos Exp $ */
+/* $NetBSD: procfs_linux.c,v 1.65 2013/11/23 13:35:36 christos Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: procfs_linux.c,v 1.64 2011/12/19 03:02:31 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_linux.c,v 1.65 2013/11/23 13:35:36 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -599,7 +599,7 @@ procfs_domounts(struct lwp *curl, struct
bf = malloc(LBFSZ, M_TEMP, M_WAITOK);
mutex_enter(&mountlist_lock);
- for (mp = CIRCLEQ_FIRST(&mountlist); mp != (void *)&mountlist;
+ for (mp = TAILQ_FIRST(&mountlist); mp != TAILQ_END(&mountlist);
mp = nmp) {
struct statvfs sfs;
Index: src/sys/nfs/nfs_vfsops.c
diff -u src/sys/nfs/nfs_vfsops.c:1.222 src/sys/nfs/nfs_vfsops.c:1.223
--- src/sys/nfs/nfs_vfsops.c:1.222 Sat Sep 14 18:27:01 2013
+++ src/sys/nfs/nfs_vfsops.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: nfs_vfsops.c,v 1.222 2013/09/14 22:27:01 martin Exp $ */
+/* $NetBSD: nfs_vfsops.c,v 1.223 2013/11/23 13:35:36 christos Exp $ */
/*
* Copyright (c) 1989, 1993, 1995
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nfs_vfsops.c,v 1.222 2013/09/14 22:27:01 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nfs_vfsops.c,v 1.223 2013/11/23 13:35:36 christos Exp $");
#if defined(_KERNEL_OPT)
#include "opt_nfs.h"
@@ -379,9 +379,7 @@ nfs_mountroot(void)
/*
* Link it into the mount list.
*/
- mutex_enter(&mountlist_lock);
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
- mutex_exit(&mountlist_lock);
+ mountlist_append(mp);
rootvp = vp;
mp->mnt_vnodecovered = NULLVP;
vfs_unbusy(mp, false, NULL);
Index: src/sys/rump/librump/rumpvfs/rumpfs.c
diff -u src/sys/rump/librump/rumpvfs/rumpfs.c:1.120 src/sys/rump/librump/rumpvfs/rumpfs.c:1.121
--- src/sys/rump/librump/rumpvfs/rumpfs.c:1.120 Mon Aug 5 07:48:22 2013
+++ src/sys/rump/librump/rumpvfs/rumpfs.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: rumpfs.c,v 1.120 2013/08/05 11:48:22 pooka Exp $ */
+/* $NetBSD: rumpfs.c,v 1.121 2013/11/23 13:35:36 christos Exp $ */
/*
* Copyright (c) 2009, 2010, 2011 Antti Kantee. All Rights Reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.120 2013/08/05 11:48:22 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.121 2013/11/23 13:35:36 christos Exp $");
#include <sys/param.h>
#include <sys/atomic.h>
@@ -1870,9 +1870,7 @@ rumpfs_mountroot()
if ((error = rumpfs_mountfs(mp)) != 0)
panic("mounting rootfs failed: %d", error);
- mutex_enter(&mountlist_lock);
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
- mutex_exit(&mountlist_lock);
+ mountlist_append(mp);
error = set_statvfs_info("/", UIO_SYSSPACE, "rumpfs", UIO_SYSSPACE,
mp->mnt_op->vfs_name, mp, curlwp);
Index: src/sys/sys/mount.h
diff -u src/sys/sys/mount.h:1.209 src/sys/sys/mount.h:1.210
--- src/sys/sys/mount.h:1.209 Fri Apr 26 18:27:16 2013
+++ src/sys/sys/mount.h Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: mount.h,v 1.209 2013/04/26 22:27:16 mlelstv Exp $ */
+/* $NetBSD: mount.h,v 1.210 2013/11/23 13:35:36 christos Exp $ */
/*
* Copyright (c) 1989, 1991, 1993
@@ -107,7 +107,7 @@ struct vnode;
* put on a doubly linked list.
*/
struct mount {
- CIRCLEQ_ENTRY(mount) mnt_list; /* mount list */
+ TAILQ_ENTRY(mount) mnt_list; /* mount list */
TAILQ_HEAD(, vnode) mnt_vnodelist; /* list of vnodes this mount */
struct vfsops *mnt_op; /* operations on fs */
struct vnode *mnt_vnodecovered; /* vnode we mounted on */
@@ -434,7 +434,7 @@ int vfs_quotactl_cursorrewind(struct mou
int vfs_quotactl_quotaon(struct mount *, int, const char *);
int vfs_quotactl_quotaoff(struct mount *, int);
-extern CIRCLEQ_HEAD(mntlist, mount) mountlist; /* mounted filesystem list */
+extern TAILQ_HEAD(mntlist, mount) mountlist; /* mounted filesystem list */
extern struct vfsops *vfssw[]; /* filesystem type table */
extern int nvfssw;
extern kmutex_t mountlist_lock;
@@ -462,6 +462,7 @@ void * mount_getspecific(struct mount *,
void mount_setspecific(struct mount *, specificdata_key_t, void *);
int usermount_common_policy(struct mount *, u_long);
+void mountlist_append(struct mount *);
LIST_HEAD(vfs_list_head, vfsops);
extern struct vfs_list_head vfs_list;
Index: src/sys/ufs/ext2fs/ext2fs_vfsops.c
diff -u src/sys/ufs/ext2fs/ext2fs_vfsops.c:1.174 src/sys/ufs/ext2fs/ext2fs_vfsops.c:1.175
--- src/sys/ufs/ext2fs/ext2fs_vfsops.c:1.174 Tue Oct 29 05:53:51 2013
+++ src/sys/ufs/ext2fs/ext2fs_vfsops.c Sat Nov 23 08:35:36 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: ext2fs_vfsops.c,v 1.174 2013/10/29 09:53:51 hannken Exp $ */
+/* $NetBSD: ext2fs_vfsops.c,v 1.175 2013/11/23 13:35:36 christos Exp $ */
/*
* Copyright (c) 1989, 1991, 1993, 1994
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ext2fs_vfsops.c,v 1.174 2013/10/29 09:53:51 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ext2fs_vfsops.c,v 1.175 2013/11/23 13:35:36 christos Exp $");
#if defined(_KERNEL_OPT)
#include "opt_compat_netbsd.h"
@@ -278,9 +278,7 @@ ext2fs_mountroot(void)
vfs_destroy(mp);
return (error);
}
- mutex_enter(&mountlist_lock);
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
- mutex_exit(&mountlist_lock);
+ mountlist_append(mp);
ump = VFSTOUFS(mp);
fs = ump->um_e2fs;
memset(fs->e2fs_fsmnt, 0, sizeof(fs->e2fs_fsmnt));
Index: src/sys/ufs/ffs/ffs_vfsops.c
diff -u src/sys/ufs/ffs/ffs_vfsops.c:1.290 src/sys/ufs/ffs/ffs_vfsops.c:1.291
--- src/sys/ufs/ffs/ffs_vfsops.c:1.290 Tue Oct 29 05:53:51 2013
+++ src/sys/ufs/ffs/ffs_vfsops.c Sat Nov 23 08:35:37 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_vfsops.c,v 1.290 2013/10/29 09:53:51 hannken Exp $ */
+/* $NetBSD: ffs_vfsops.c,v 1.291 2013/11/23 13:35:37 christos Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.290 2013/10/29 09:53:51 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.291 2013/11/23 13:35:37 christos Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -325,9 +325,7 @@ ffs_mountroot(void)
return (error);
}
mp->mnt_flag &= ~MNT_FORCE;
- mutex_enter(&mountlist_lock);
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
- mutex_exit(&mountlist_lock);
+ mountlist_append(mp);
ump = VFSTOUFS(mp);
fs = ump->um_fs;
memset(fs->fs_fsmnt, 0, sizeof(fs->fs_fsmnt));
Index: src/sys/ufs/lfs/lfs_bio.c
diff -u src/sys/ufs/lfs/lfs_bio.c:1.126 src/sys/ufs/lfs/lfs_bio.c:1.127
--- src/sys/ufs/lfs/lfs_bio.c:1.126 Sat Jul 27 21:05:52 2013
+++ src/sys/ufs/lfs/lfs_bio.c Sat Nov 23 08:35:37 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: lfs_bio.c,v 1.126 2013/07/28 01:05:52 dholland Exp $ */
+/* $NetBSD: lfs_bio.c,v 1.127 2013/11/23 13:35:37 christos 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.126 2013/07/28 01:05:52 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lfs_bio.c,v 1.127 2013/11/23 13:35:37 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -570,7 +570,7 @@ lfs_flush(struct lfs *fs, int flags, int
} else {
locked_fakequeue_count = 0;
mutex_enter(&mountlist_lock);
- for (mp = CIRCLEQ_FIRST(&mountlist); mp != (void *)&mountlist;
+ for (mp = TAILQ_FIRST(&mountlist); mp != TAILQ_END(&mountlist);
mp = nmp) {
if (vfs_busy(mp, &nmp)) {
DLOG((DLOG_FLUSH, "lfs_flush: fs vfs_busy\n"));
Index: src/sys/ufs/lfs/lfs_vfsops.c
diff -u src/sys/ufs/lfs/lfs_vfsops.c:1.315 src/sys/ufs/lfs/lfs_vfsops.c:1.316
--- src/sys/ufs/lfs/lfs_vfsops.c:1.315 Thu Oct 17 17:01:08 2013
+++ src/sys/ufs/lfs/lfs_vfsops.c Sat Nov 23 08:35:37 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: lfs_vfsops.c,v 1.315 2013/10/17 21:01:08 christos Exp $ */
+/* $NetBSD: lfs_vfsops.c,v 1.316 2013/11/23 13:35:37 christos 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.315 2013/10/17 21:01:08 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lfs_vfsops.c,v 1.316 2013/11/23 13:35:37 christos Exp $");
#if defined(_KERNEL_OPT)
#include "opt_lfs.h"
@@ -454,7 +454,7 @@ lfs_writerd(void *arg)
mutex_enter(&mountlist_lock);
lfsc = 0;
skipc = 0;
- for (mp = CIRCLEQ_FIRST(&mountlist); mp != (void *)&mountlist;
+ for (mp = TAILQ_FIRST(&mountlist); mp != TAILQ_END(&mountlist);
mp = nmp) {
if (vfs_busy(mp, &nmp)) {
++skipc;
@@ -609,9 +609,7 @@ lfs_mountroot(void)
vfs_destroy(mp);
return (error);
}
- mutex_enter(&mountlist_lock);
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
- mutex_exit(&mountlist_lock);
+ mountlist_append(mp);
ump = VFSTOULFS(mp);
fs = ump->um_lfs;
memset(fs->lfs_fsmnt, 0, sizeof(fs->lfs_fsmnt));
Index: src/sys/ufs/mfs/mfs_vfsops.c
diff -u src/sys/ufs/mfs/mfs_vfsops.c:1.103 src/sys/ufs/mfs/mfs_vfsops.c:1.104
--- src/sys/ufs/mfs/mfs_vfsops.c:1.103 Sat Jun 11 23:36:01 2011
+++ src/sys/ufs/mfs/mfs_vfsops.c Sat Nov 23 08:35:37 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: mfs_vfsops.c,v 1.103 2011/06/12 03:36:01 rmind Exp $ */
+/* $NetBSD: mfs_vfsops.c,v 1.104 2013/11/23 13:35:37 christos Exp $ */
/*
* Copyright (c) 1989, 1990, 1993, 1994
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mfs_vfsops.c,v 1.103 2011/06/12 03:36:01 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mfs_vfsops.c,v 1.104 2013/11/23 13:35:37 christos Exp $");
#if defined(_KERNEL_OPT)
#include "opt_compat_netbsd.h"
@@ -227,9 +227,7 @@ mfs_mountroot(void)
kmem_free(mfsp, sizeof(*mfsp));
return (error);
}
- mutex_enter(&mountlist_lock);
- CIRCLEQ_INSERT_TAIL(&mountlist, mp, mnt_list);
- mutex_exit(&mountlist_lock);
+ mountlist_append(mp);
mp->mnt_vnodecovered = NULLVP;
ump = VFSTOUFS(mp);
fs = ump->um_fs;