- if (rc && __capa_is_to_expire(ocapa, &tv)) {
- /* client should use new expiry now */
- ocapa->c_bvalid = 0;
- goto new_capa;
- }
- spin_unlock(&filter->fo_capa_lock);
-
- if (rc) {
- char *key1 = NULL, *key2 = NULL;
- OBD_ALLOC(key1, CAPA_DIGEST_SIZE * 2 + 1);
- OBD_ALLOC(key2, CAPA_DIGEST_SIZE * 2 + 1);
- if (key1 && key2) {
- dump_capa_hmac(key1, capa->lc_hmac);
- dump_capa_hmac(key2, ocapa->c_capa.lc_hmac);
- DEBUG_CAPA(D_ERROR, capa,
- "access denied for (%s != %s)",
- key1, key2);
- DEBUG_CAPA(D_ERROR, &ocapa->c_capa, "used capa");
+ cfs_spin_lock(&capa_lock);
+ cfs_list_for_each_entry(k, &filter->fo_capa_keys, k_list) {
+ if (k->k_key.lk_seq == seq &&
+ k->k_key.lk_keyid == capa_keyid(capa)) {
+ found = 1;
+ break;