RETURN(ocapa);
}
+
+ if (atomic_read(&ll_capa_stat)) {
+ CDEBUG(D_ERROR, "find capa for (uid %u, op %d, mdsid "LPU64","
+ " ino %u igen %u) failed.\n",
+ (unsigned)uid, op, id_group(&lli->lli_id),
+ (unsigned)id_ino(&lli->lli_id), id_gen(&lli->lli_id));
+ atomic_set(&ll_capa_stat, 0);
+ }
RETURN(NULL);
}
* in the future it will be moved to ll_sb_info to support multi-
* mount point */
struct timer_list ll_capa_timer;
+atomic_t ll_capa_stat = ATOMIC_INIT(0);
EXPORT_SYMBOL(capa_lock);
EXPORT_SYMBOL(capa_hash);
struct obd_capa *ocapa;
uid_t ouid;
- CDEBUG(D_INODE, "find capa for (uid %u, op %d, mdsid "LPU64", ino %lu"
- " igen %u, type %d\n", (unsigned) uid, capa_op, mdsid, ino, igen, type);
hlist_for_each_entry(ocapa, pos, head, c_hash) {
if (ocapa->c_capa.lc_ino != ino)
continue;
return ocapa;
}
+ if (atomic_read(&ll_capa_stat)) {
+ CDEBUG(D_ERROR, "find capa for (uid %u, op %d, mdsid "LPU64","
+ " ino %lu igen %u, type %d) failed.\n",
+ (unsigned) uid, capa_op, mdsid, ino, igen, type);
+ atomic_set(&ll_capa_stat, 0);
+ }
+
return NULL;
}
if (!ocapa)
ocapa = get_new_capa_locked(head, type, capa);
+ if (type == CLIENT_CAPA)
+ atomic_set(&ll_capa_stat, 1);
+
return ocapa;
}