vfs_lock really locks now
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Wed, 6 Sep 1989 14:12:22 +0000 (06:12 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Wed, 6 Sep 1989 14:12:22 +0000 (06:12 -0800)
SCCS-vsn: sys/kern/vfs_subr.c 7.6

usr/src/sys/kern/vfs_subr.c

index 56bcf93..80a41d1 100644 (file)
@@ -14,7 +14,7 @@
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- *     @(#)vfs_subr.c  7.5 (Berkeley) %G%
+ *     @(#)vfs_subr.c  7.6 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -104,8 +104,10 @@ vfs_lock(mp)
        register struct mount *mp;
 {
 
        register struct mount *mp;
 {
 
-       if (mp->m_flag & M_MLOCK)
-               return (EBUSY);
+       while(mp->m_flag & M_MLOCK) {
+               mp->m_flag |= M_MWAIT;
+               sleep((caddr_t)mp, PVFS);
+       }
        mp->m_flag |= M_MLOCK;
        return (0);
 }
        mp->m_flag |= M_MLOCK;
        return (0);
 }