- /**
- * Wait-queue signaled when an object in this site is ultimately
- * destroyed (lu_object_free()). It is used by lu_object_find() to
- * wait before re-trying when object in the process of destruction is
- * found in the hash table.
- *
- * If having a single wait-queue turns out to be a problem, a
- * wait-queue per hash-table bucket can be easily implemented.
- *
- * \see htable_lookup().
- */
- cfs_waitq_t ls_marche_funebre;
-
- /** statistical counters. Protected by nothing, races are accepted. */
- struct {
- __u32 s_created;
- __u32 s_cache_hit;
- __u32 s_cache_miss;
- /**
- * Number of hash-table entry checks made.
- *
- * ->s_cache_check / (->s_cache_miss + ->s_cache_hit)
- *
- * is an average number of hash slots inspected during single
- * lookup.
- */
- __u32 s_cache_check;
- /** Races with cache insertions. */
- __u32 s_cache_race;
- /**
- * Races with object destruction.
- *
- * \see lu_site::ls_marche_funebre.
- */
- __u32 s_cache_death_race;
- __u32 s_lru_purged;
- } ls_stats;
+static inline struct lu_site_bkt_data *
+lu_site_bkt_from_fid(struct lu_site *site, struct lu_fid *fid)
+{
+ cfs_hash_bd_t bd;