Peter Schwenke has uploaded this change for review.

View Change

MDCACHE: Skip stale directory entry

This fixes a race condition where a directory entry is found but
when during the ops->getattrs2 call we find that the file has been
deleted.

In the VFS case, this is during vfs_getattr2 it fails when it tries
to lookup the file.

The positioning of the skip needs to be after the callback.
attrs hasn't been filled so, in this case, fsal_release_attrs doesn't
need to be called. However, a skip might be added for some other
reason at a later date.

I do not understand the significance of whence_is_name, so that
should be looked at during the review. It is important, that we
go to check for eod. That is the conditining for exiting the
loop and, maybe, this entry had the eod flag.

Change-Id: I68a22210f69bf6cf88beb199b23dbb1af021c965
Signed-off-by: Peter Schwenke <pschwenke@ddn.com>
---
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_helpers.c
1 file changed, 14 insertions(+), 2 deletions(-)

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

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

Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I68a22210f69bf6cf88beb199b23dbb1af021c965
Gerrit-Change-Number: 1236015
Gerrit-PatchSet: 1
Gerrit-Owner: Peter Schwenke <pschwenke@ddn.com>