Madhu Thorat has uploaded this change for review. ( https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/451444 Change subject: Add 'expire_time_parent' parameter and refill parent handle if expired ...................................................................... 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 https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/451444 To unsubscribe, or for help writing mail filters, visit https://review.gerrithub.io/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