deeraj.patil@ibm.com has uploaded this change for review.
[unexport] : NFSv3 stop new IO's when unexport in progress.
mdcache_locate_host is called for every NFS request (NFSv3 and NFSv4)
that carries a file handle via create_handle. On a cache hit it returns
the cached entry without checking whether the current export is being
unexported or whether the entry is still mapped to the requesting
export.
A concurrent NFSv3 request arriving while mdcache_unexport is removing
entries can receive a valid-looking entry whose backing export is being
freed. The caller then proceeds to reopen_fsal_fd, re-inserting a FD
into the global LRU under the dying export's fsal_export pointer,
eventually causing a use-after-free in the LRU reaper.
After a cache hit, call mdc_check_mapping() to verify the entry is still
mapped to the current export and MDC_UNEXPORT is not set.
Change-Id: I5b0b0f74a71977dab27045029f38a0f3309af5d4
Signed-off-by: Deeraj.Patil <Deeraj.Patil@ibm.com>
---
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_helpers.c
1 file changed, 24 insertions(+), 0 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/97/1232497/1
To view, visit change 1232497. To unsubscribe, or for help writing mail filters, visit settings.