diff options
author | tegge <tegge@FreeBSD.org> | 1998-04-15 18:37:49 +0000 |
---|---|---|
committer | tegge <tegge@FreeBSD.org> | 1998-04-15 18:37:49 +0000 |
commit | eb926b31caa43e1019410739686d348df06d65ab (patch) | |
tree | 2a0dc1f65d1e3f3e09d5265063b327a6f02a37bd /sys/kern/vfs_subr.c | |
parent | 632701e8f5fbb00c5f3aa7e9a8f6979ae429dc13 (diff) | |
download | FreeBSD-src-eb926b31caa43e1019410739686d348df06d65ab.zip FreeBSD-src-eb926b31caa43e1019410739686d348df06d65ab.tar.gz |
Unlock mountlist_slock if the mount point was busy (unmount in progress)
during the attempt at lazy fsync.
Diffstat (limited to 'sys/kern/vfs_subr.c')
-rw-r--r-- | sys/kern/vfs_subr.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 2ba465e..8df970b 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95 - * $Id: vfs_subr.c,v 1.147 1998/03/28 13:24:54 bde Exp $ + * $Id: vfs_subr.c,v 1.148 1998/03/30 09:51:08 phk Exp $ */ /* @@ -2738,8 +2738,10 @@ sync_fsync(ap) * not already on the sync list. */ simple_lock(&mountlist_slock); - if (vfs_busy(mp, LK_EXCLUSIVE | LK_NOWAIT, &mountlist_slock, p) != 0) + if (vfs_busy(mp, LK_EXCLUSIVE | LK_NOWAIT, &mountlist_slock, p) != 0) { + simple_unlock(&mountlist_slock); return (0); + } asyncflag = mp->mnt_flag & MNT_ASYNC; mp->mnt_flag &= ~MNT_ASYNC; VFS_SYNC(mp, MNT_LAZY, ap->a_cred, p); |