msdosfs_vfsops.c (4ccd7546866d13c42b6d7339d42671baf7c38ff9) | msdosfs_vfsops.c (797c3dba2521452f841141cd9637c428aa16430e) |
---|---|
1/* $FreeBSD$ */ 2/* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */ 3 4/*- 5 * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. 6 * Copyright (C) 1994, 1995, 1997 TooLs GmbH. 7 * All rights reserved. 8 * Original code by Paul Popelka (paulp@uts.amdahl.com) (see below). --- 852 unchanged lines hidden (view full) --- 861loop: 862 for (vp = LIST_FIRST(&mp->mnt_vnodelist); vp != NULL; vp = nvp) { 863 /* 864 * If the vnode that we are about to sync is no longer 865 * associated with this mount point, start over. 866 */ 867 if (vp->v_mount != mp) 868 goto loop; | 1/* $FreeBSD$ */ 2/* $NetBSD: msdosfs_vfsops.c,v 1.51 1997/11/17 15:36:58 ws Exp $ */ 3 4/*- 5 * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. 6 * Copyright (C) 1994, 1995, 1997 TooLs GmbH. 7 * All rights reserved. 8 * Original code by Paul Popelka (paulp@uts.amdahl.com) (see below). --- 852 unchanged lines hidden (view full) --- 861loop: 862 for (vp = LIST_FIRST(&mp->mnt_vnodelist); vp != NULL; vp = nvp) { 863 /* 864 * If the vnode that we are about to sync is no longer 865 * associated with this mount point, start over. 866 */ 867 if (vp->v_mount != mp) 868 goto loop; |
869 nvp = LIST_NEXT(vp, v_mntvnodes); |
|
869 | 870 |
871 mtx_unlock(&mntvnode_mtx); |
|
870 mtx_lock(&vp->v_interlock); | 872 mtx_lock(&vp->v_interlock); |
871 nvp = LIST_NEXT(vp, v_mntvnodes); | |
872 dep = VTODE(vp); 873 if (vp->v_type == VNON || 874 ((dep->de_flag & 875 (DE_ACCESS | DE_CREATE | DE_UPDATE | DE_MODIFIED)) == 0 && 876 (TAILQ_EMPTY(&vp->v_dirtyblkhd) || waitfor == MNT_LAZY))) { 877 mtx_unlock(&vp->v_interlock); | 873 dep = VTODE(vp); 874 if (vp->v_type == VNON || 875 ((dep->de_flag & 876 (DE_ACCESS | DE_CREATE | DE_UPDATE | DE_MODIFIED)) == 0 && 877 (TAILQ_EMPTY(&vp->v_dirtyblkhd) || waitfor == MNT_LAZY))) { 878 mtx_unlock(&vp->v_interlock); |
879 mtx_lock(&mntvnode_mtx); |
|
878 continue; 879 } | 880 continue; 881 } |
880 mtx_unlock(&mntvnode_mtx); | |
881 error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK, p); 882 if (error) { 883 mtx_lock(&mntvnode_mtx); 884 if (error == ENOENT) 885 goto loop; 886 continue; 887 } 888 error = VOP_FSYNC(vp, cred, waitfor, p); --- 76 unchanged lines hidden --- | 882 error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK, p); 883 if (error) { 884 mtx_lock(&mntvnode_mtx); 885 if (error == ENOENT) 886 goto loop; 887 continue; 888 } 889 error = VOP_FSYNC(vp, cred, waitfor, p); --- 76 unchanged lines hidden --- |