(key->flags & KEY_FLAG_DEAD) || 
test_bit(KEY_FLAG_DEAD, &key->flags) || 
struct key *key_lookup(key_serial_t id){	struct rb_node *n;	struct key *key;	spin_lock(&key_serial_lock);	/* search the tree for the specified key */	n = key_serial_tree.rb_node;	while (n) {		key = rb_entry(n, struct key, serial_node);		if (id < key->serial)			n = n->rb_left;		else if (id > key->serial)			n = n->rb_right;		else			goto found;	} not_found:	key = ERR_PTR(-ENOKEY);	goto error; found:	/* pretent doesn't exist if it's dead */	if (atomic_read(&key->usage) == 0 ||	    (key->flags & KEY_FLAG_DEAD) ||	    key->type == &key_type_dead)		goto not_found;	/* this races with key_put(), but that doesn't matter since key_put()	 * doesn't actually change the key	 */	atomic_inc(&key->usage); error:	spin_unlock(&key_serial_lock);	return key;} /* end key_lookup() */
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/76d8aeabfeb1c42641a81c44280177b9a08670d8/key.c/clean/security/keys/key.c