kernel - Remove improper EBUSY error on mount
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 28 Feb 2013 00:42:04 +0000 (16:42 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 28 Feb 2013 00:42:04 +0000 (16:42 -0800)
commit1c8efd4dbe45498adb44773d2b82f5f123d5f4db
treef357d85337a5955aeddf2f98cff73d659a24fa25
parent17141d3a9a3b602157ec8a1cb95cc3607f5f5dd5
kernel - Remove improper EBUSY error on mount

* Remove the old VMOUNT vnode flag.  This flag is no longer applicable
  to anything we do.

* Simultanious mounts onto the same target at different points in the
  topology could cause races against the VMOUNT flag due to the vnode
  being shared, resulting in an EBUSY error for a perfectly good mount
  request.

  For example, if you mount_null A to X, A to Y, and A to Z, then
  you simultaniously try to mount devfs onto X/dev, Y/dev, and Z/dev,
  some of those dev mount attempts could fail.  This was due to the
  VMOUNT flag set on the vnode.  X/dev, Y/dev, and Z/dev share the
  same physical vnode.

* Fixes poudriere weirdness when many jails are in use.
sys/kern/vfs_conf.c
sys/kern/vfs_syscalls.c
sys/sys/vnode.h