4h8qdp6jx9@privaterelay.appleid.com has uploaded this change for review.

View Change

MDCACHE: survive directory entries removed outside Ganesha

After a file was removed outside Ganesha, three bugs kept a cached
directory broken:

- READDIR failed with NFS4ERR_NOENT when looking up an evicted entry
again. Drop the entry instead.
- mdcache_is_referral() refreshed expired attributes without the mtime
check that flushes cached entries, so the cache was trusted forever.
- A cached READDIR never revalidated the directory, so it missed the
change unless a GETATTR came first.

Change-Id: I0527fdee179a13868e5242e8ab313eb822fa2a25
Signed-off-by: Evan Champion <4h8qdp6jx9@privaterelay.appleid.com>
---
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_handle.c
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_helpers.c
2 files changed, 52 insertions(+), 0 deletions(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/31/1255431/1

To view, visit change 1255431. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I0527fdee179a13868e5242e8ab313eb822fa2a25
Gerrit-Change-Number: 1255431
Gerrit-PatchSet: 1
Gerrit-Owner: 4h8qdp6jx9@privaterelay.appleid.com