Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Nov 1997 22:10:37 -0800 (PST)
From:      Bruce Evans <bde@FreeBSD.ORG>
To:        cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-sys@FreeBSD.ORG
Subject:   cvs commit: src/sys/kern vfs_syscalls.c
Message-ID:  <199711220610.WAA11558@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
bde         1997/11/21 22:10:37 PST

  Modified files:
    sys/kern             vfs_syscalls.c 
  Log:
  Fixed rev.1.81.  mp->mnt_kern_flag was restored in the non-error case of
  `mount -u'.  This only matters for `mount -u' competing with unmounts.
  If I understand the locking correctly: if mount() blocks, then unmount()
  may run and set mp->kern_flag for the same mp.  Then unmount() blocks
  waiting for mount() to finish.  When unmount() continues, its MNTK flags
  (MNTK_UNMOUNT and MNTK_MWAIT) may have been clobbered.
  
  Didn't fix old bugs:
  - restoring mp->mnt_kern_flag is wrong for the same reasons in the error
    case.
  - the error case of unmount() seems to be broken too:
    (a) MNTK_UNMOUNT gets clobbered, although another unmount() may have
        set it.  Perhaps it shouldn't be set until after the full lock is
        aquired.
    (b) MNTK_MWAIT isn't honoured.
  
  Fixed a nearby style bug.
  
  Revision  Changes    Path
  1.83      +4 -3      src/sys/kern/vfs_syscalls.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199711220610.WAA11558>