https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/446812
On Thu, Feb 28, 2019 at 3:00 PM Bjorn Leffler <leffler(a)google.com> wrote:
If you don't get a patch from me by tomorrow, then please do it
yourself.
I'm about to go away for a 10-14 days.
On Thu, Feb 28, 2019 at 4:33 PM Frank Filz <ffilzlnx(a)mindspring.com>
wrote:
> Oops…
>
>
>
> The if statement at the top of nfs3_read_cb (and I assume nfs3_write_cb
> also) needs to be re-organized to handle the no-error case first so that
> doesn’t go through nfs_RetryableError.
>
>
>
> I can patch, or you can submit, either way.
>
>
>
> Frank
>
>
>
> *From:* Bjorn Leffler [mailto:leffler@google.com]
> *Sent:* Wednesday, February 27, 2019 8:51 PM
> *To:* devel(a)lists.nfs-ganesha.org
> *Subject:* [NFS-Ganesha-Devel] Correct usage of nfs3_read_cb callback?
>
>
>
> I'm implementing a new FSAL. At the end of a successful read2() function,
> I call the callback as follows:
>
>
>
> void myfsal_read2(struct fsal_obj_handle *obj_hdl,
>
> bool bypass,
>
> fsal_async_cb done_cb,
>
> struct fsal_io_arg *read_arg,
>
> void *caller_arg){
>
> // ... read data ...
>
> fsal_status_t status = fsalstat(ERR_FSAL_NO_ERROR, 0);
>
> done_cb(obj_hdl, status, read_arg, caller_arg);
>
> }
>
>
>
> This generates the following error
> in src/Protocols/NFS/nfs_proto_tools.c, line 213:
>
> nfs_RetryableError :NFS3 :CRIT :Possible implementation error:
> ERR_FSAL_NO_ERROR managed as an error
>
>
>
> From the client side, read / write operations work as expected. If I
> don't call the callback function, the NFS operation doesn't complete.
>
>
>
> What are the correct usage of the callback functions, after successful
> operations?
>
>
>
> Thanks,
>
> Bjorn
>