msdosfs: fix deleted-but-open files handling.
When deleting a file, msdosfs keeps its denode in the denode cache until it is
reclaimed. This causes a collision in the cache when recycling the directory
entry of a deleted but still open file for a new or renamed file. This
collision was incorrecly handled resulting in a kernel panic (rename case) or
syscall error and corrupted in-core state (new file case).
Fix by allowing denodes pointing to the same directory entry to coexist in the
cache as long as a single one of them represents an existing file.
Reported-by: corecore@
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1286>