That pseudo-code looks okay. Can you attach to the hung ganesha in the
debugger and look at what the thread is doing? It may be stuck on a
lock or something.
Daniel
On 12/17/20 5:22 AM, Chakra Divi wrote:
Hi all,
I'm working to create an async model in fsal layer for my filesystem. As part of
this, called "done_cb" for a read_req from my own thread in fsal layer. This
causes hang and nfs4 stopped responding. Here is pseudo code for the read callback. i
could see a similar implementation in FSAL_MEM (mem_handle.c) layer
void fsal_read2_cb(void *cbArg, int err) {
struct test_wa *wa = (struct test_wa*)cbArg;
fsal_errors_t fsal_error = posix2fsal_error(err);
struct root_op_context root_op_context;
init_root_op_context(&root_op_context, wa->ctx_export, wa->fsal_export, 0,
0, UNKNOWN_REQUEST);
wa->done_cb(wa->obj_hdl, fsalstat(fsal_error, err), wa->read_arg,
wa->caller_arg);
release_root_op_context();
free(wa);
return;
}
Shouldn't we call done_cb from a custom thread ? Can you please let me know if
i'm missing something and right way to do this - Thanks for the help
Regards,
Chakra
_______________________________________________
Devel mailing list -- devel(a)lists.nfs-ganesha.org
To unsubscribe send an email to devel-leave(a)lists.nfs-ganesha.org