vfs_mount.c (217792) | vfs_mount.c (218195) |
---|---|
1/*- 2 * Copyright (c) 1999-2004 Poul-Henning Kamp 3 * Copyright (c) 1999 Michael Smith 4 * Copyright (c) 1989, 1993 5 * The Regents of the University of California. All rights reserved. 6 * (c) UNIX System Laboratories, Inc. 7 * All or some portions of this file are derived from material licensed 8 * to the University of California by American Telephone and Telegraph --- 21 unchanged lines hidden (view full) --- 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 */ 36 37#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1999-2004 Poul-Henning Kamp 3 * Copyright (c) 1999 Michael Smith 4 * Copyright (c) 1989, 1993 5 * The Regents of the University of California. All rights reserved. 6 * (c) UNIX System Laboratories, Inc. 7 * All or some portions of this file are derived from material licensed 8 * to the University of California by American Telephone and Telegraph --- 21 unchanged lines hidden (view full) --- 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 */ 36 37#include <sys/cdefs.h> |
38__FBSDID("$FreeBSD: head/sys/kern/vfs_mount.c 217792 2011-01-24 17:08:26Z jh $"); | 38__FBSDID("$FreeBSD: head/sys/kern/vfs_mount.c 218195 2011-02-02 16:35:10Z mdf $"); |
39 40#include <sys/param.h> 41#include <sys/conf.h> 42#include <sys/fcntl.h> 43#include <sys/jail.h> 44#include <sys/kernel.h> 45#include <sys/libkern.h> 46#include <sys/malloc.h> --- 1607 unchanged lines hidden (view full) --- 1654struct vnode * 1655__mnt_vnode_next(struct vnode **mvp, struct mount *mp) 1656{ 1657 struct vnode *vp; 1658 1659 mtx_assert(MNT_MTX(mp), MA_OWNED); 1660 1661 KASSERT((*mvp)->v_mount == mp, ("marker vnode mount list mismatch")); | 39 40#include <sys/param.h> 41#include <sys/conf.h> 42#include <sys/fcntl.h> 43#include <sys/jail.h> 44#include <sys/kernel.h> 45#include <sys/libkern.h> 46#include <sys/malloc.h> --- 1607 unchanged lines hidden (view full) --- 1654struct vnode * 1655__mnt_vnode_next(struct vnode **mvp, struct mount *mp) 1656{ 1657 struct vnode *vp; 1658 1659 mtx_assert(MNT_MTX(mp), MA_OWNED); 1660 1661 KASSERT((*mvp)->v_mount == mp, ("marker vnode mount list mismatch")); |
1662 if ((*mvp)->v_yield++ == 500) { | 1662 if (should_yield()) { |
1663 MNT_IUNLOCK(mp); | 1663 MNT_IUNLOCK(mp); |
1664 (*mvp)->v_yield = 0; | |
1665 uio_yield(); 1666 MNT_ILOCK(mp); 1667 } 1668 vp = TAILQ_NEXT(*mvp, v_nmntvnodes); 1669 while (vp != NULL && vp->v_type == VMARKER) 1670 vp = TAILQ_NEXT(vp, v_nmntvnodes); 1671 1672 /* Check if we are done */ --- 302 unchanged lines hidden --- | 1664 uio_yield(); 1665 MNT_ILOCK(mp); 1666 } 1667 vp = TAILQ_NEXT(*mvp, v_nmntvnodes); 1668 while (vp != NULL && vp->v_type == VMARKER) 1669 vp = TAILQ_NEXT(vp, v_nmntvnodes); 1670 1671 /* Check if we are done */ --- 302 unchanged lines hidden --- |