write_lock(&key->lock); key->flags &= ~KEY_FLAG_NEGATIVE; write_unlock(&key->lock); } 
clear_bit(KEY_FLAG_NEGATIVE, &key->flags); 
static inline struct key *__key_update(struct key *key, const void *payload,				       size_t plen){	int ret;	/* need write permission on the key to update it */	ret = -EACCES;	if (!key_permission(key, KEY_WRITE))		goto error;	ret = -EEXIST;	if (!key->type->update)		goto error;	down_write(&key->sem);	ret = key->type->update(key, payload, plen);	if (ret == 0) {		/* updating a negative key instantiates it */		write_lock(&key->lock);		key->flags &= ~KEY_FLAG_NEGATIVE;		write_unlock(&key->lock);	}	up_write(&key->sem);	if (ret < 0)		goto error; out:	return key; error:	key_put(key);	key = ERR_PTR(ret);	goto out;} /* end __key_update() */
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/76d8aeabfeb1c42641a81c44280177b9a08670d8/key.c/clean/security/keys/key.c