> > It is intended that there be different flavours but only > > one can be used in any running kernel. A driver file/module > > claims the cleancache_ops pointer (and should check to ensure > > it is not already claimed). And if nobody claims cleancache_ops, > > the hooks should be as non-intrusive as possible. > > > > Also note that the operations occur on the order of the number > > of I/O's, so definitely a lot, but "zillion" may be a bit high. :-) > > > > If you think this is a showstoppper, it could be changed > > to be bound only at compile-time, but then (I think) the claimer > > could never be a dynamically-loadable module. > > Andrew is suggesting that rather than making cleancache_ops a pointer > to > a structure, just make it a structure, so that calling a function is a > matter of cleancache_ops.func rather than cleancache_ops->func, thereby > avoiding a pointer dereference. OK, I see. So the claimer of the cleancache_ops structure just fills in all of the func fields individually? That would work too. IIUC it wouldn't save any instructions when cleancache_ops is unclaimed because it is still necessary to check a func pointer against NULL, but would save an extra pointer indirection and possible cache miss for every use of any func when it is claimed. I'll change that for next rev. Thanks and sorry I misunderstood! Dan -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html