Whamcloud - gitweb
b=21846 add a hs_key entry in lqs hash operations
[fs/lustre-release.git] / libcfs / include / libcfs / libcfs_hash.h
index 769854f..73cfe01 100644 (file)
@@ -175,11 +175,9 @@ cfs_hash_key(cfs_hash_t *hs, cfs_hlist_node_t *hnode)
         LASSERT(hs);
         LASSERT(hnode);
         LASSERT(CFS_HO(hs));
+        LASSERT(CFS_HOP(hs, key));
 
-        if (CFS_HOP(hs, key))
-                return CFS_HOP(hs, key)(hnode);
-
-        return NULL;
+        return CFS_HOP(hs, key)(hnode);
 }
 
 /* Returns 1 on a match,
@@ -407,8 +405,13 @@ cfs_hash_u64_hash(__u64 key, unsigned mask)
 #define cfs_hash_for_each_bucket(hs, hsb, pos)   \
         for (pos = 0;                            \
              pos <= hs->hs_cur_mask &&           \
-             ({ hsb = hs->hs_buckets[i]; 1; });  \
+             (hsb = hs->hs_buckets[pos]);       \
              pos++)
 
+#define cfs_hash_for_each_bucket_restart(hs, hsb, pos)  \
+        for (/* pos=0 done once by caller */;           \
+             pos <= hs->hs_cur_mask &&                  \
+             (hsb = hs->hs_buckets[pos]);              \
+             pos++)
 /* !__LIBCFS__HASH_H__ */
 #endif