Madhu Thorat has uploaded this change for review.

View Change

Add 'expire_time_parent' parameter and refill parent handle if expired

If the underlying file system doesn't give sufficient information
in an upcall to notify about parent change for a DIRECTORY then
the parent handle won't get updated for an entry. This may cause
problem when parent handle is used.
This change intends to help with this problem by providing a new
parameter 'expire_time_parent' to let a FSAL set expiration time
for parent handle. The default value is 'expire_time_parent=-1',
which means ganesha won't expire parent handle. If a FSAL sets
'expire_time_parent' to any other value then whenever we try to
get parent handle, we check if the current parent handle has expired
by checking the current time with 'expire_time_parent'. In case it
has expired then if required a lookup is made for the parent and
the parent handle is updated.

NOTE: Can we have the parameter 'expire_time_parent' in some other
structure, other than fsal_staticfsinfo_t, like in
'struct mdcache_parameter' or have it as a macro.
The intention to have new parameter 'expire_time_parent' in
fsal_staticfsinfo_t was to let FSAL decide if it wants the parent
handle to expire in case it cannot rely on the file system to give
an upcall about parent change for a DIRECTORY. Didn't keep it in
'struct mdcache_parameter' or have it as a macro as in that case
parent handle would be updated even when a file system is reliably
sending upcall for parent update.

Change-Id: I76a022139c08052817f1f29ddcf77ce4d7d51b3f
Signed-off-by: Madhu Thorat <madhu.punjabi@in.ibm.com>
---
M src/FSAL/FSAL_CEPH/main.c
M src/FSAL/FSAL_GLUSTER/main.c
M src/FSAL/FSAL_GPFS/main.c
M src/FSAL/FSAL_MEM/mem_main.c
M src/FSAL/FSAL_PROXY/main.c
M src/FSAL/FSAL_PSEUDO/main.c
M src/FSAL/FSAL_RGW/main.c
M src/FSAL/FSAL_VFS/panfs/main.c
M src/FSAL/FSAL_VFS/vfs/main-c.in.cmake
M src/FSAL/FSAL_VFS/xfs/main.c
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_export.c
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_helpers.c
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_int.h
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_main.c
M src/FSAL/Stackable_FSALs/FSAL_NULL/export.c
M src/FSAL/Stackable_FSALs/FSAL_NULL/main.c
M src/FSAL/commonlib.c
M src/FSAL/default_methods.c
M src/FSAL/fsal_config.c
M src/include/FSAL/fsal_config.h
M src/include/fsal_api.h
M src/include/fsal_types.h
22 files changed, 156 insertions(+), 13 deletions(-)

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

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

Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I76a022139c08052817f1f29ddcf77ce4d7d51b3f
Gerrit-Change-Number: 451444
Gerrit-PatchSet: 1
Gerrit-Owner: Madhu Thorat <madhu.punjabi@in.ibm.com>
Gerrit-MessageType: newchange