[OpenAFS-devel] Patch to prepare the client for addition protocols
Felix Frank
Felix.Frank@Desy.de
Wed, 15 Jul 2009 16:17:22 +0200
I have thought this through. Here's what I think now:
>>>> +rxfs_storeInit(struct vcache *avc, struct storeOps **ops, char **rock)
>>> As far as I can see callers to this function expect that the third
>>> parameter will always be a struct rxfs_storeVariables, so why not
That's true, but...
>>> just return that, rather than an anoymous pointer? My earlier comment
>>> about rocks applies here, too.
...afs_CacheStoreProc will later call several "storeOps" according to
protocol, and does not care what that protocol is. It knows at the one
time at which it chooses what xxx_fetchInit() function to call, but it
doesn't care afterwards. So it will have to store the resulting rock as
a void* anyway, so as to pass it to the anonymous fetchOps. Typing it
here would imply a cast of the void** argument passed by
afs_CacheStoreProc to rxfs_storeVariables**, which strikes me as a
rather dull thing to do.
I hope this wasn't too convoluted.
- Felix