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