It looks like when MDCACHE was introduced, some instances of ERR_FSAL_ STALE got changed to ERR_FSAL_DELAY.

 

Daniel, do you recall if there was a reasoning behind that? Did something else change at the same time?

 

Frank

 

From: Suhrud Patankar [mailto:suhrudpatankar@gmail.com]
Sent: Monday, May 17, 2021 1:58 AM
To: nfs-ganesha <devel@lists.nfs-ganesha.org>
Subject: [NFS-Ganesha-Devel] FSAL read and ERR_FSAL_DELAY

 

Hello All,

 

We want to serve read in case of a slow backend and would like the client to retry the read op.

 

mdc_read_super_cb() calls mdcache_kill_entry() if FSAL returns eDelay. This ends up cleaning the state for the file including any byte range locks.

 

Does this mean eDealy is not a valid error for FSAL read? How do I return ERR_FSAL_DELAY from FSAL without losing the state?

 

Thanks in advance for your help!

 

Thanks & Regards,

Suhrud