kernel - Fix deadlock when umount races an access on the underlying filesystem

* The nlookup code temporarily busies the target mount when diving a
  mount point in cases where the base of the mount is not resolved
  in the namecache.

* Fix a deadlock which can occur between the namecache structural lock
  and the vfs_busy() on the mount structure by reordering the lock.

* Generally only occured if an attempt was made to unmount a filesystem
  on which programs are still doing active operations (verses just
  passively holding references to the filesystem).  For example, a
  umount on the target filesystem occuring while a cpdup using an
  absolute path is running.

Reported-by: ftigeot