Uh, what? what do you mean by "copy the results to the downcall"?
Your post indicated that if the was_handled_inline member was set that
was all that was needed. Is something else needed? I don't know what a
downcall is or how to copy results there.
Walt
Murali Vilayannur wrote:
Hi Walt,
Maybe it would be simpler to modify the code as shown:
>> /*
>> check if we need to repost the operation (in case of failure or
>> inlined handling/completion)
>> */
>> switch(ret)
>> {
case SM_ACTION_TERMINATE:
vfs->request->was_handled_inline = 1;
Ok, that works too :)
Just remember to copy the results to the downcall (calling the
write_inlined_device_response should do the trick)
before reposting the op.
thanks,
Murali
/* this code falls through to the next case */
>> case 0:
>> {
>> /*
>> if we've already completed the operation, just repost
>> the unexp request
>> */
>> if (vfs_request->was_handled_inline)
>> {
>> ret = repost_unexp_vfs_request(
>> vfs_request, "inlined completion");
>> }
>> else
>> {
>
>
> What we could do to retain this part of the code is to set the
> ->was_handled_inline member variable in all the post_*_request()
functions
> if the PVFS_isys_*() function indicated that the posted operation
finished
> immediately.
> If we do that, then we could retain this code as is without adding any
> more cases. Great catch!
> thanks,
> Murali
>
>
>> /*
>> otherwise, we've just properly posted a non-blocking
>> op; mark it as no longer a dev unexp msg and add it
>> to the ops in progress table
>> */
>> vfs_request->is_dev_unexp = 0;
>> ret = add_op_to_op_in_progress_table(vfs_request);
>>#if 0
>> assert(is_op_in_progress(vfs_request));
>>#endif
>> }
>> }
>> break;
>> case REMOUNT_PENDING:
>> ret = repost_unexp_vfs_request(
>> vfs_request, "mount pending");
>> break;
>> case OP_IN_PROGRESS:
>> ret = repost_unexp_vfs_request(
>> vfs_request, "op already in progress");
>> break;
>> default:
>> PVFS_perror_gossip("Operation failed", ret);
>> ret = repost_unexp_vfs_request(
>> vfs_request, "failure");
>> break;
>> }
>> return ret;
>>}
--
Dr. Walter B. Ligon III
Associate Professor
ECE Department
Clemson University
_______________________________________________
Pvfs2-developers mailing list
Pvfs2-developers@beowulf-underground.org
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers