CMake: get rid off GetGitRevisionDescription Cmake include. Use "git rev-parse HEAD" and "git describe --long" as external programs instead.

Signed-off-by: Philippe DENIEL <philippe.deniel@cea.fr>
Revert "Use long form clientid to persist clientid on storage for V4 recovery."

This reverts commit 6a12202976ba8106c1f79249aa8f3d31bbe7933c.

Signed-off-by: Philippe DENIEL <philippe.deniel@cea.fr>
Purge the gids cache via dbus interface

This dbus interface purges the entire gids cache altogether.

Signed-off-by: Malahal Naineni <malahal@us.ibm.com>
Signed-off-by: Philippe DENIEL <philippe.deniel@cea.fr>
Add Manage_Gids_Expiration time to config parser

The default is 30 minutes, and can be configured from 0 seconds to
a maximum of 1 week!

Signed-off-by: Malahal Naineni <malahal@us.ibm.com>
Signed-off-by: Philippe DENIEL <philippe.deniel@cea.fr>
Implement removing gids cache entries.

The current code tries to update a gids cache entry with new
supplementary groups after manage_gids_expiration timeout (30 minutes by
default). The group_data structure is reference counted but is not
removed from the AVL trees. Thus a very active entry's refcount may
never go to zero. Due to a bug in the implementation, we actually free
the "groups" buffer while there may be active users.

This commit implements removing cache entry after expiration timeout.
This way, any new requests get reference on the newly created entry, and
eventually the removed entry's refcount should go to zero at which point
it gets freed.

Also "cache_info" now has a pointer to "group_data" rather than the
structure itself. This way, "cache_info" can be freed as soon as it gets
removed from the cache trees, and "group_data" gets freed when its
refcount goes to zero.

Signed-off-by: Malahal Naineni <malahal@us.ibm.com>
Signed-off-by: Philippe DENIEL <philippe.deniel@cea.fr>

Conflicts:
	src/include/9p.h
	src/support/uid2grp.c
Added uid2grp prefix to some symbols.

Signed-off-by: Malahal Naineni <malahal@us.ibm.com>
Signed-off-by: Philippe DENIEL <philippe.deniel@cea.fr>
Verify the node we find in the hash array

Hash collisions are not handled. We simpley replace the old entry with
the new entry. So make sure that the node we find in the hash array is
in fact what we want.

Signed-off-by: Malahal Naineni <malahal@us.ibm.com>
Signed-off-by: Philippe DENIEL <philippe.deniel@cea.fr>
Store group_data pointer on the stack.

Also, manage_gids feature only works with NFSv3 for now.

Signed-off-by: Malahal Naineni <malahal@us.ibm.com>
Signed-off-by: Philippe DENIEL <philippe.deniel@cea.fr>
Manage Gigs: fixes a regression (segfault) observed in 9P

Signed-off-by: Philippe DENIEL <philippe.deniel@cea.fr>