Commit bf2ca1b1 authored by James Simmons's avatar James Simmons Committed by Greg Kroah-Hartman

staging: lustre: remove white space in libcfs_hash.h

Cleanup all the unneeded white space in libcfs_hash.h.
Signed-off-by: default avatarJames Simmons <jsimmons@infradead.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 5d21c5a8
...@@ -66,12 +66,12 @@ ...@@ -66,12 +66,12 @@
#include <linux/hash.h> #include <linux/hash.h>
/** disable debug */ /** disable debug */
#define CFS_HASH_DEBUG_NONE 0 #define CFS_HASH_DEBUG_NONE 0
/** record hash depth and output to console when it's too deep, /** record hash depth and output to console when it's too deep,
* computing overhead is low but consume more memory */ * computing overhead is low but consume more memory */
#define CFS_HASH_DEBUG_1 1 #define CFS_HASH_DEBUG_1 1
/** expensive, check key validation */ /** expensive, check key validation */
#define CFS_HASH_DEBUG_2 2 #define CFS_HASH_DEBUG_2 2
#define CFS_HASH_DEBUG_LEVEL CFS_HASH_DEBUG_NONE #define CFS_HASH_DEBUG_LEVEL CFS_HASH_DEBUG_NONE
...@@ -108,16 +108,18 @@ struct cfs_hash_bucket { ...@@ -108,16 +108,18 @@ struct cfs_hash_bucket {
* cfs_hash bucket descriptor, it's normally in stack of caller * cfs_hash bucket descriptor, it's normally in stack of caller
*/ */
struct cfs_hash_bd { struct cfs_hash_bd {
struct cfs_hash_bucket *bd_bucket; /**< address of bucket */ /* address of bucket */
unsigned int bd_offset; /**< offset in bucket */ struct cfs_hash_bucket *bd_bucket;
/* offset in bucket */
unsigned int bd_offset;
}; };
#define CFS_HASH_NAME_LEN 16 /**< default name length */ #define CFS_HASH_NAME_LEN 16 /**< default name length */
#define CFS_HASH_BIGNAME_LEN 64 /**< bigname for param tree */ #define CFS_HASH_BIGNAME_LEN 64 /**< bigname for param tree */
#define CFS_HASH_BKT_BITS 3 /**< default bits of bucket */ #define CFS_HASH_BKT_BITS 3 /**< default bits of bucket */
#define CFS_HASH_BITS_MAX 30 /**< max bits of bucket */ #define CFS_HASH_BITS_MAX 30 /**< max bits of bucket */
#define CFS_HASH_BITS_MIN CFS_HASH_BKT_BITS #define CFS_HASH_BITS_MIN CFS_HASH_BKT_BITS
/** /**
* common hash attributes. * common hash attributes.
...@@ -133,41 +135,41 @@ enum cfs_hash_tag { ...@@ -133,41 +135,41 @@ enum cfs_hash_tag {
*/ */
CFS_HASH_NO_LOCK = 1 << 0, CFS_HASH_NO_LOCK = 1 << 0,
/** no bucket lock, use one spinlock to protect the whole hash */ /** no bucket lock, use one spinlock to protect the whole hash */
CFS_HASH_NO_BKTLOCK = 1 << 1, CFS_HASH_NO_BKTLOCK = 1 << 1,
/** rwlock to protect bucket */ /** rwlock to protect bucket */
CFS_HASH_RW_BKTLOCK = 1 << 2, CFS_HASH_RW_BKTLOCK = 1 << 2,
/** spinlock to protect bucket */ /** spinlock to protect bucket */
CFS_HASH_SPIN_BKTLOCK = 1 << 3, CFS_HASH_SPIN_BKTLOCK = 1 << 3,
/** always add new item to tail */ /** always add new item to tail */
CFS_HASH_ADD_TAIL = 1 << 4, CFS_HASH_ADD_TAIL = 1 << 4,
/** hash-table doesn't have refcount on item */ /** hash-table doesn't have refcount on item */
CFS_HASH_NO_ITEMREF = 1 << 5, CFS_HASH_NO_ITEMREF = 1 << 5,
/** big name for param-tree */ /** big name for param-tree */
CFS_HASH_BIGNAME = 1 << 6, CFS_HASH_BIGNAME = 1 << 6,
/** track global count */ /** track global count */
CFS_HASH_COUNTER = 1 << 7, CFS_HASH_COUNTER = 1 << 7,
/** rehash item by new key */ /** rehash item by new key */
CFS_HASH_REHASH_KEY = 1 << 8, CFS_HASH_REHASH_KEY = 1 << 8,
/** Enable dynamic hash resizing */ /** Enable dynamic hash resizing */
CFS_HASH_REHASH = 1 << 9, CFS_HASH_REHASH = 1 << 9,
/** can shrink hash-size */ /** can shrink hash-size */
CFS_HASH_SHRINK = 1 << 10, CFS_HASH_SHRINK = 1 << 10,
/** assert hash is empty on exit */ /** assert hash is empty on exit */
CFS_HASH_ASSERT_EMPTY = 1 << 11, CFS_HASH_ASSERT_EMPTY = 1 << 11,
/** record hlist depth */ /** record hlist depth */
CFS_HASH_DEPTH = 1 << 12, CFS_HASH_DEPTH = 1 << 12,
/** /**
* rehash is always scheduled in a different thread, so current * rehash is always scheduled in a different thread, so current
* change on hash table is non-blocking * change on hash table is non-blocking
*/ */
CFS_HASH_NBLK_CHANGE = 1 << 13, CFS_HASH_NBLK_CHANGE = 1 << 13,
/** NB, we typed hs_flags as __u16, please change it /** NB, we typed hs_flags as __u16, please change it
* if you need to extend >=16 flags */ * if you need to extend >=16 flags */
}; };
/** most used attributes */ /** most used attributes */
#define CFS_HASH_DEFAULT (CFS_HASH_RW_BKTLOCK | \ #define CFS_HASH_DEFAULT (CFS_HASH_RW_BKTLOCK | \
CFS_HASH_COUNTER | CFS_HASH_REHASH) CFS_HASH_COUNTER | CFS_HASH_REHASH)
/** /**
* cfs_hash is a hash-table implementation for general purpose, it can support: * cfs_hash is a hash-table implementation for general purpose, it can support:
...@@ -211,7 +213,7 @@ enum cfs_hash_tag { ...@@ -211,7 +213,7 @@ enum cfs_hash_tag {
struct cfs_hash { struct cfs_hash {
/** serialize with rehash, or serialize all operations if /** serialize with rehash, or serialize all operations if
* the hash-table has CFS_HASH_NO_BKTLOCK */ * the hash-table has CFS_HASH_NO_BKTLOCK */
union cfs_hash_lock hs_lock; union cfs_hash_lock hs_lock;
/** hash operations */ /** hash operations */
struct cfs_hash_ops *hs_ops; struct cfs_hash_ops *hs_ops;
/** hash lock operations */ /** hash lock operations */
...@@ -219,57 +221,57 @@ struct cfs_hash { ...@@ -219,57 +221,57 @@ struct cfs_hash {
/** hash list operations */ /** hash list operations */
struct cfs_hash_hlist_ops *hs_hops; struct cfs_hash_hlist_ops *hs_hops;
/** hash buckets-table */ /** hash buckets-table */
struct cfs_hash_bucket **hs_buckets; struct cfs_hash_bucket **hs_buckets;
/** total number of items on this hash-table */ /** total number of items on this hash-table */
atomic_t hs_count; atomic_t hs_count;
/** hash flags, see cfs_hash_tag for detail */ /** hash flags, see cfs_hash_tag for detail */
__u16 hs_flags; __u16 hs_flags;
/** # of extra-bytes for bucket, for user saving extended attributes */ /** # of extra-bytes for bucket, for user saving extended attributes */
__u16 hs_extra_bytes; __u16 hs_extra_bytes;
/** wants to iterate */ /** wants to iterate */
__u8 hs_iterating; __u8 hs_iterating;
/** hash-table is dying */ /** hash-table is dying */
__u8 hs_exiting; __u8 hs_exiting;
/** current hash bits */ /** current hash bits */
__u8 hs_cur_bits; __u8 hs_cur_bits;
/** min hash bits */ /** min hash bits */
__u8 hs_min_bits; __u8 hs_min_bits;
/** max hash bits */ /** max hash bits */
__u8 hs_max_bits; __u8 hs_max_bits;
/** bits for rehash */ /** bits for rehash */
__u8 hs_rehash_bits; __u8 hs_rehash_bits;
/** bits for each bucket */ /** bits for each bucket */
__u8 hs_bkt_bits; __u8 hs_bkt_bits;
/** resize min threshold */ /** resize min threshold */
__u16 hs_min_theta; __u16 hs_min_theta;
/** resize max threshold */ /** resize max threshold */
__u16 hs_max_theta; __u16 hs_max_theta;
/** resize count */ /** resize count */
__u32 hs_rehash_count; __u32 hs_rehash_count;
/** # of iterators (caller of cfs_hash_for_each_*) */ /** # of iterators (caller of cfs_hash_for_each_*) */
__u32 hs_iterators; __u32 hs_iterators;
/** rehash workitem */ /** rehash workitem */
cfs_workitem_t hs_rehash_wi; cfs_workitem_t hs_rehash_wi;
/** refcount on this hash table */ /** refcount on this hash table */
atomic_t hs_refcount; atomic_t hs_refcount;
/** rehash buckets-table */ /** rehash buckets-table */
struct cfs_hash_bucket **hs_rehash_buckets; struct cfs_hash_bucket **hs_rehash_buckets;
#if CFS_HASH_DEBUG_LEVEL >= CFS_HASH_DEBUG_1 #if CFS_HASH_DEBUG_LEVEL >= CFS_HASH_DEBUG_1
/** serialize debug members */ /** serialize debug members */
spinlock_t hs_dep_lock; spinlock_t hs_dep_lock;
/** max depth */ /** max depth */
unsigned int hs_dep_max; unsigned int hs_dep_max;
/** id of the deepest bucket */ /** id of the deepest bucket */
unsigned int hs_dep_bkt; unsigned int hs_dep_bkt;
/** offset in the deepest bucket */ /** offset in the deepest bucket */
unsigned int hs_dep_off; unsigned int hs_dep_off;
/** bits when we found the max depth */ /** bits when we found the max depth */
unsigned int hs_dep_bits; unsigned int hs_dep_bits;
/** workitem to output max depth */ /** workitem to output max depth */
cfs_workitem_t hs_dep_wi; cfs_workitem_t hs_dep_wi;
#endif #endif
/** name of htable */ /** name of htable */
char hs_name[0]; char hs_name[0];
}; };
struct cfs_hash_lock_ops { struct cfs_hash_lock_ops {
...@@ -324,11 +326,11 @@ struct cfs_hash_ops { ...@@ -324,11 +326,11 @@ struct cfs_hash_ops {
}; };
/** total number of buckets in @hs */ /** total number of buckets in @hs */
#define CFS_HASH_NBKT(hs) \ #define CFS_HASH_NBKT(hs) \
(1U << ((hs)->hs_cur_bits - (hs)->hs_bkt_bits)) (1U << ((hs)->hs_cur_bits - (hs)->hs_bkt_bits))
/** total number of buckets in @hs while rehashing */ /** total number of buckets in @hs while rehashing */
#define CFS_HASH_RH_NBKT(hs) \ #define CFS_HASH_RH_NBKT(hs) \
(1U << ((hs)->hs_rehash_bits - (hs)->hs_bkt_bits)) (1U << ((hs)->hs_rehash_bits - (hs)->hs_bkt_bits))
/** number of hlist for in bucket */ /** number of hlist for in bucket */
...@@ -433,19 +435,22 @@ cfs_hash_with_nblk_change(struct cfs_hash *hs) ...@@ -433,19 +435,22 @@ cfs_hash_with_nblk_change(struct cfs_hash *hs)
static inline int static inline int
cfs_hash_is_exiting(struct cfs_hash *hs) cfs_hash_is_exiting(struct cfs_hash *hs)
{ /* cfs_hash_destroy is called */ {
/* cfs_hash_destroy is called */
return hs->hs_exiting; return hs->hs_exiting;
} }
static inline int static inline int
cfs_hash_is_rehashing(struct cfs_hash *hs) cfs_hash_is_rehashing(struct cfs_hash *hs)
{ /* rehash is launched */ {
/* rehash is launched */
return hs->hs_rehash_bits != 0; return hs->hs_rehash_bits != 0;
} }
static inline int static inline int
cfs_hash_is_iterating(struct cfs_hash *hs) cfs_hash_is_iterating(struct cfs_hash *hs)
{ /* someone is calling cfs_hash_for_each_* */ {
/* someone is calling cfs_hash_for_each_* */
return hs->hs_iterating || hs->hs_iterators != 0; return hs->hs_iterating || hs->hs_iterators != 0;
} }
...@@ -758,7 +763,7 @@ static inline void ...@@ -758,7 +763,7 @@ static inline void
cfs_hash_bucket_validate(struct cfs_hash *hs, struct cfs_hash_bd *bd, cfs_hash_bucket_validate(struct cfs_hash *hs, struct cfs_hash_bd *bd,
struct hlist_node *hnode) struct hlist_node *hnode)
{ {
struct cfs_hash_bd bds[2]; struct cfs_hash_bd bds[2];
cfs_hash_dual_bd_get(hs, cfs_hash_key(hs, hnode), bds); cfs_hash_dual_bd_get(hs, cfs_hash_key(hs, hnode), bds);
LASSERT(bds[0].bd_bucket == bd->bd_bucket || LASSERT(bds[0].bd_bucket == bd->bd_bucket ||
...@@ -777,9 +782,9 @@ cfs_hash_bucket_validate(struct cfs_hash *hs, struct cfs_hash_bd *bd, ...@@ -777,9 +782,9 @@ cfs_hash_bucket_validate(struct cfs_hash *hs, struct cfs_hash_bd *bd,
#endif /* CFS_HASH_DEBUG_LEVEL */ #endif /* CFS_HASH_DEBUG_LEVEL */
#define CFS_HASH_THETA_BITS 10 #define CFS_HASH_THETA_BITS 10
#define CFS_HASH_MIN_THETA (1U << (CFS_HASH_THETA_BITS - 1)) #define CFS_HASH_MIN_THETA (1U << (CFS_HASH_THETA_BITS - 1))
#define CFS_HASH_MAX_THETA (1U << (CFS_HASH_THETA_BITS + 1)) #define CFS_HASH_MAX_THETA (1U << (CFS_HASH_THETA_BITS + 1))
/* Return integer component of theta */ /* Return integer component of theta */
static inline int __cfs_hash_theta_int(int theta) static inline int __cfs_hash_theta_int(int theta)
...@@ -848,20 +853,20 @@ cfs_hash_u64_hash(const __u64 key, unsigned mask) ...@@ -848,20 +853,20 @@ cfs_hash_u64_hash(const __u64 key, unsigned mask)
} }
/** iterate over all buckets in @bds (array of struct cfs_hash_bd) */ /** iterate over all buckets in @bds (array of struct cfs_hash_bd) */
#define cfs_hash_for_each_bd(bds, n, i) \ #define cfs_hash_for_each_bd(bds, n, i) \
for (i = 0; i < n && (bds)[i].bd_bucket != NULL; i++) for (i = 0; i < n && (bds)[i].bd_bucket != NULL; i++)
/** iterate over all buckets of @hs */ /** iterate over all buckets of @hs */
#define cfs_hash_for_each_bucket(hs, bd, pos) \ #define cfs_hash_for_each_bucket(hs, bd, pos) \
for (pos = 0; \ for (pos = 0; \
pos < CFS_HASH_NBKT(hs) && \ pos < CFS_HASH_NBKT(hs) && \
((bd)->bd_bucket = (hs)->hs_buckets[pos]) != NULL; pos++) ((bd)->bd_bucket = (hs)->hs_buckets[pos]) != NULL; pos++)
/** iterate over all hlist of bucket @bd */ /** iterate over all hlist of bucket @bd */
#define cfs_hash_bd_for_each_hlist(hs, bd, hlist) \ #define cfs_hash_bd_for_each_hlist(hs, bd, hlist) \
for ((bd)->bd_offset = 0; \ for ((bd)->bd_offset = 0; \
(bd)->bd_offset < CFS_HASH_BKT_NHLIST(hs) && \ (bd)->bd_offset < CFS_HASH_BKT_NHLIST(hs) && \
(hlist = cfs_hash_bd_hhead(hs, bd)) != NULL; \ (hlist = cfs_hash_bd_hhead(hs, bd)) != NULL; \
(bd)->bd_offset++) (bd)->bd_offset++)
/* !__LIBCFS__HASH_H__ */ /* !__LIBCFS__HASH_H__ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment