libafs/LINUX: avoid leaks due to corrupt dir
authorJeffrey Hutzelman <jhutz@cmu.edu>
Wed, 12 Jun 2013 20:22:36 +0000 (16:22 -0400)
committerDerrick Brashear <shadow@your-file-system.com>
Fri, 12 Jul 2013 15:45:00 +0000 (08:45 -0700)
commita2bfa0e853fb4954fd06a00ea6fbc55c39e76b8a
tree3e806fe2daeb12748a97f0337927c33b5d3b710c
parentc854cb31ff2b1ab79de18b5ab926bf2ea2b05663
libafs/LINUX: avoid leaks due to corrupt dir

When a corrupt directory is discovered, scanning stops immediately and
readdir returns ENOENT.  Currently, the vcache lock is unlocked and the
dcache containing the directory is released, but that's not enough.
It's also necessary to unlock the dcache, on which we hold a read lock,
and to clear the vcache state which records an in-progress readdir.

Change-Id: I408e8bc8b1f4a0ebc1740410da5d760f30b4c875
Reviewed-on: http://gerrit.openafs.org/9971
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
src/afs/LINUX/osi_vnodeops.c