summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_subr.c
diff options
context:
space:
mode:
authortegge <tegge@FreeBSD.org>1998-04-15 18:37:49 +0000
committertegge <tegge@FreeBSD.org>1998-04-15 18:37:49 +0000
commiteb926b31caa43e1019410739686d348df06d65ab (patch)
tree2a0dc1f65d1e3f3e09d5265063b327a6f02a37bd /sys/kern/vfs_subr.c
parent632701e8f5fbb00c5f3aa7e9a8f6979ae429dc13 (diff)
downloadFreeBSD-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.c6
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);
OpenPOWER on IntegriCloud