NFS AUTH_SYS requires that user credential (on diod server == nfs client) include supplementary groups which are passed in NFS RPC's to the NFS server. Restore supplementary group regression tests. Still need to get to the bottom of why they were failing on Ubuntu 11.
Also add a test of reading a long directory that will be broken into multiple readdir requests.
/etc/auto.diod will try each host in a space delimited list of hosts listed in DIOD_SERVERS until once succedes (issue 58). Ignore trailing white space in the DIOD_SERVERS list (issue 57). Add a -t SECS timeout option to diodcat (issue 48). Drop confusing hostlist support in diodmount -h option.
Calling setgroups () before every op turns out to be inadvisable since the call can apply to all threads in some environments. Instead, bypass server-side discretionary access controls by setting CAP_DAC_OVERRIDE capability on non-root fsid's when we know that v9fs is on the other end and is already checking DACs. This punts the supplemental group check to the client. We assume we have a "trusted" client if the connection was originally authenticated as root. None of this applies when the server is not running as root.
When last reference is dropped, conn is destroyed which triggers tpool cleanup. If this reference is dropped by retirement of a request instead of completion of the conn reader thread, the tpool cleanup function will attempt to join with the worker thread that retired the request, resulting in a pthread_join "deadlock avoided" error. This race was causing misc/t10 to sporadically fail. Have the conn reader thread explicitly handle the conn desruction on termination. Add a condition var so it can wait for retirement of all outstanding reqs on the conn.