Hello!

On Jan 17, 2011, at 1:22 AM, Vilobh Meshram wrote:
> I am having some problem in understanding the role of following functions :-
> 
> it_disposition (There are various variants of this depending on the flag)

it_disposition is a function that checks if an RPC passed through a certain 
phase in server processing (identified by "flag"). Essentially a disposition is 
a bitmask of states.
To make things a bit more complicated, the client also uses the mask for its 
purposes after receiving the RPC reply to indicate if any extra cleanup actions 
need to be done on this RPC during 
cleanup (like releasing any extra RPC references).

> it_open_error

This function gets a a particular RPC phase argument, matches it against the 
actual phases through which RPCs went and if the phase matches one of the 
passed phases, returns RPC execution status.
I guess that sounds a bit confusing, so here is an example.
LEt's assume there are three phases in an open request: EXECD, LOOKUP and OPEN 
(corresponding to receiving and succesfully unpacking a request, looking up the 
file and then doing actual open).

Then if there was a problem during open, the call to 
it_open_error(DISP_OPEN_OPEN, it) would return that error, if the error 
happened earlier during the processing, somewhere in say request unpacking, 
that still makes open to fail, so it would return the same state.
But if say the request progressed to open phase and failed there, but we call 
it_open_error(DISP_LOOKUP_EXECD, it), the result would be 0 (= no error), since 
the unpackign went alright and the request was processed all the way to OPEN 
phase before the error happened.

Hope this helps.

Bye,
    Oleg
_______________________________________________
Lustre-discuss mailing list
[email protected]
http://lists.lustre.org/mailman/listinfo/lustre-discuss

Reply via email to