This is for discussion, I do not intent the patch to be committed as is, most likely.
The new UMA_ZONE_ALLFINI flag is only meaningful together with UMA_ZONE_NOFREE. It requests that zone fini() method is called on all free elements in the zone keg.
The problem with the implementation is that it only works on the free slabs, free elements in the partially filled slabs are ignored. In other words, it behaves strange if there is a leak already. Also it consumes the last unused bit in flags.