Thanks! I have raised review for the same: https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/516839 On Mon, May 17, 2021 at 9:37 PM Daniel Gryniewicz <dang@redhat.com> wrote:
It looks like, in cache_inode, there was a check for ERR_FSAL_DELAY in order to log a message, and that was conflated with the ERR_FSAL_STALE check that nuked the cache entry. I agree this should be ERR_FSAL_STALE instead.
Daniel
On 5/17/21 10:46 AM, Frank Filz wrote:
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