From: Marc Dionne Date: Sun, 25 Apr 2010 02:12:27 +0000 (-0400) Subject: Linux: Remove unnecessary crhold on incomplete kernel credentials X-Git-Tag: openafs-devel-1_5_75~354 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=14195f0f48d52dd3a81c52c4a3bc2078857d0f86 Linux: Remove unnecessary crhold on incomplete kernel credentials When credentials debugging is active in the kernel, sanity checks in various credentials functions such as get_cred or put_cred require that they are called with full fledged kernel credentials. This can be a problem with recent kernels in osi_Init where we build our own credentials and try to "crhold" them. Getting a reference doesn't make much sense anyway since we're using a statically allocated structure that we never try to free or modify. As a minimal fix, just don't call crhold when we're using the kernel credentials structure. Change-Id: If4f843ad33526c6a42f1cf67c57763593ffa50ac Reviewed-on: http://gerrit.openafs.org/1828 Tested-by: Marc Dionne Reviewed-by: Derrick Brashear --- diff --git a/src/afs/afs_osi.c b/src/afs/afs_osi.c index 8926254..b04cae1 100644 --- a/src/afs/afs_osi.c +++ b/src/afs/afs_osi.c @@ -95,7 +95,9 @@ osi_Init(void) #if defined(AFS_DARWIN80_ENV) afs_osi_cred.cr_ref = 1; /* kauth_cred_get_ref needs 1 existing ref */ #else - crhold(&afs_osi_cred); /* don't let it evaporate */ +# if !(defined(AFS_LINUX26_ENV) && defined(STRUCT_TASK_HAS_CRED)) + crhold(&afs_osi_cred); /* don't let it evaporate */ +# endif #endif afs_osi_credp = &afs_osi_cred;