Christian Couder <christian.couder@xxxxxxxxx> writes: > + case 0: > + return 1; /* 0% means always write a new shared index */ > + case 100: > + return 0; /* 100% means never write a new shared index */ > + default: > + ; /* do nothing: just use the configured value */ > + } Just like you did in 04/21, write "break" to avoid mistakes made in the future, i.e. default: break; /* just use the configured value */ > + > + /* Count not shared entries */ > + for (i = 0; i < istate->cache_nr; i++) { > + struct cache_entry *ce = istate->cache[i]; > + if (!ce->index) > + not_shared++; > + } > + > + return istate->cache_nr * max_split < not_shared * 100; On a 32-bit arch with 2G int and more than 20 million paths in the index, multiplying by max_split that can come close to 100 can theoretically cause integer overflow, but in practice it probably does not matter. Or does it?