[Lustre-devel] Needed: insight on obd_set_info_async()
Nicolas Williams
Nicolas.Williams at sun.com
Sun Oct 4 10:11:18 PDT 2009
On Sun, Oct 04, 2009 at 01:34:27AM -0600, Andreas Dilger wrote:
> On Oct 02, 2009 17:06 -0500, Nicolas Williams wrote:
> > I'm trying to find out which uses of obd_set_info_async() involve values
> > that come from a PTLRPC message buffer, and which ones don't. It would
> > help to know what obd_set_info_async() is for... It seems it's a
> > glorified ioctl()...
>
> Sort of, yes, though I would characterize it more like a "get/set system
> xattr". It can get/set key,value pairs on a local or remote node. The
> "async" part means that the caller is the one in charge of handling waiting
> for completion of the operation. This is important when doing an operation
> that may involve many OSTs, since we want the RPCs to happen in parallel
> instead of in series.
But does it always go over the wire? Is it always executed with a 'val'
that came off the wire?
> > I'm tempted to augment it to always take a struct ptlrpc_request *req
> > argument, so that req == NULL || val == NULL, and when req != NULL the
> > value will be obtained using req_capsule_*_get(). Between that and
> > enhancements to req_capsule_extend() and what not we might be able to
> > ensure that 'val' is always swabbed by capsule code.
>
> I can't comment on the HEAD capsule code, maybe someone else can...
That's OK, I can take care of the capsule conversion for this function.
But I need to understand it and the contexts when it's called a bit
better.
Nico
--
More information about the lustre-devel
mailing list