fat: Remove directory from dlist on unlink, not in remove_vnode.hrev49367
commitdbaafd15c0679ad0c5dca0cc9b6a4decdd22fbeb
authorMichael Lotz <mmlr@mlotz.ch>
Mon, 18 May 2015 20:58:30 +0000 (18 22:58 +0200)
committerMichael Lotz <mmlr@mlotz.ch>
Sat, 4 Jul 2015 21:32:08 +0000 (4 23:32 +0200)
treeae5604a4283140a9d97c0eb2153eba454a22ba88
parentadc769a79fff00c6cd30bfbdc309293b91ae3bc6
fat: Remove directory from dlist on unlink, not in remove_vnode.

The removal of the vnode happens later than the actual unlink. As part
of the unlink, the vnode cache is already updated to mark the unlinked
directory invalid. This means its entry in the directory list needs to
be removed as well. Otherwise, if a directory list entry is looked up
in the time between unlink and remove_vnode, the assertion which checks
the validity of the directory list entries would fail.
src/add-ons/kernel/file_systems/fat/file.c