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
_______________________________________________
OpenAFS-devel mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-devel