mountd.c uses a single linked list of "struct exportlist" structures, where there is one of these for each exported
file system on the NFS server. This list gets long if there are a large number of file systems exported and the list
must be searched for each line in the exports file(s) when SIGHUP causes the exports file(s) to be reloaded.
A simple benchmark that traverses SLIST() elements and compares two 32bit fields in the structure for equal
(which is what the search is) appears to take a couple of nsec. So, for a server with 72000 exported file systems,
this can take about 5sec during reload of the exports file(s).
By replacing the single linked list with a hash table and a target of 10 elements per list (what some call a load factor),
the time should be reduced to something less than 1msec.
I had Peter Errikson (who has a server with 72000+ exported file systems) run a test program using 5 hashes to see
how they worked.
The first three behaved about equally well, with the first one being slightly better than the others.
It has an average variation of about 4.5% about the target list length and that is what this patch uses.
cem@ suggested that a load factor closer to 1 would be more typical, but since the reload of exports file(s)
doesn't occur that frequently, getting the total search time for the load below 1msec seemed adequate to me.