struct key *keyring) 
struct key *keyring, struct key *instkey) 
static int __key_instantiate_and_link(struct key *key,				      const void *data,				      size_t datalen,				      struct key *keyring){	int ret, awaken;	key_check(key);	key_check(keyring);	awaken = 0;	ret = -EBUSY;	down_write(&key_construction_sem);	/* can't instantiate twice */	if (!test_bit(KEY_FLAG_INSTANTIATED, &key->flags)) {		/* instantiate the key */		ret = key->type->instantiate(key, data, datalen);		if (ret == 0) {			/* mark the key as being instantiated */			atomic_inc(&key->user->nikeys);			set_bit(KEY_FLAG_INSTANTIATED, &key->flags);			if (test_and_clear_bit(KEY_FLAG_USER_CONSTRUCT, &key->flags))				awaken = 1;			/* and link it into the destination keyring */			if (keyring)				ret = __key_link(keyring, key);		}	}	up_write(&key_construction_sem);	/* wake up anyone waiting for a key to be constructed */	if (awaken)		wake_up_all(&request_key_conswq);	return ret;} /* end __key_instantiate_and_link() */
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3e30148c3d524a9c1c63ca28261bc24c457eb07a/key.c/clean/security/keys/key.c