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 @@
#include <linux/hash.h>
/** 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,
* computing overhead is low but consume more memory */
#define CFS_HASH_DEBUG_1 1
#define CFS_HASH_DEBUG_1 1
/** 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
......@@ -108,16 +108,18 @@ struct cfs_hash_bucket {
* cfs_hash bucket descriptor, it's normally in stack of caller
*/
struct cfs_hash_bd {
struct cfs_hash_bucket *bd_bucket; /**< address of bucket */
unsigned int bd_offset; /**< offset in bucket */
/* address of 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_BIGNAME_LEN 64 /**< bigname for param tree */
#define CFS_HASH_NAME_LEN 16 /**< default name length */
#define CFS_HASH_BIGNAME_LEN 64 /**< bigname for param tree */
#define CFS_HASH_BKT_BITS 3 /**< default 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_BKT_BITS 3 /**< default bits of bucket */
#define CFS_HASH_BITS_MAX 30 /**< max bits of bucket */
#define CFS_HASH_BITS_MIN CFS_HASH_BKT_BITS
/**
* common hash attributes.
......@@ -133,41 +135,41 @@ enum cfs_hash_tag {
*/
CFS_HASH_NO_LOCK = 1 << 0,
/** 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 */
CFS_HASH_RW_BKTLOCK = 1 << 2,
CFS_HASH_RW_BKTLOCK = 1 << 2,
/** spinlock to protect bucket */
CFS_HASH_SPIN_BKTLOCK = 1 << 3,
CFS_HASH_SPIN_BKTLOCK = 1 << 3,
/** 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 */
CFS_HASH_NO_ITEMREF = 1 << 5,
CFS_HASH_NO_ITEMREF = 1 << 5,
/** big name for param-tree */
CFS_HASH_BIGNAME = 1 << 6,
/** track global count */
CFS_HASH_COUNTER = 1 << 7,
/** rehash item by new key */
CFS_HASH_REHASH_KEY = 1 << 8,
CFS_HASH_REHASH_KEY = 1 << 8,
/** Enable dynamic hash resizing */
CFS_HASH_REHASH = 1 << 9,
CFS_HASH_REHASH = 1 << 9,
/** can shrink hash-size */
CFS_HASH_SHRINK = 1 << 10,
CFS_HASH_SHRINK = 1 << 10,
/** assert hash is empty on exit */
CFS_HASH_ASSERT_EMPTY = 1 << 11,
CFS_HASH_ASSERT_EMPTY = 1 << 11,
/** record hlist depth */
CFS_HASH_DEPTH = 1 << 12,
CFS_HASH_DEPTH = 1 << 12,
/**
* rehash is always scheduled in a different thread, so current
* 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
* if you need to extend >=16 flags */
};
/** most used attributes */
#define CFS_HASH_DEFAULT (CFS_HASH_RW_BKTLOCK | \
CFS_HASH_COUNTER | CFS_HASH_REHASH)
#define CFS_HASH_DEFAULT (CFS_HASH_RW_BKTLOCK | \
CFS_HASH_COUNTER | CFS_HASH_REHASH)
/**
* cfs_hash is a hash-table implementation for general purpose, it can support:
......@@ -211,7 +213,7 @@ enum cfs_hash_tag {
struct cfs_hash {
/** serialize with rehash, or serialize all operations if
* the hash-table has CFS_HASH_NO_BKTLOCK */
union cfs_hash_lock hs_lock;
union cfs_hash_lock hs_lock;
/** hash operations */
struct cfs_hash_ops *hs_ops;
/** hash lock operations */
......@@ -219,57 +221,57 @@ struct cfs_hash {
/** hash list operations */
struct cfs_hash_hlist_ops *hs_hops;
/** hash buckets-table */
struct cfs_hash_bucket **hs_buckets;
struct cfs_hash_bucket **hs_buckets;
/** total number of items on this hash-table */
atomic_t hs_count;
atomic_t hs_count;
/** hash flags, see cfs_hash_tag for detail */
__u16 hs_flags;
__u16 hs_flags;
/** # of extra-bytes for bucket, for user saving extended attributes */
__u16 hs_extra_bytes;
__u16 hs_extra_bytes;
/** wants to iterate */
__u8 hs_iterating;
__u8 hs_iterating;
/** hash-table is dying */
__u8 hs_exiting;
__u8 hs_exiting;
/** current hash bits */
__u8 hs_cur_bits;
__u8 hs_cur_bits;
/** min hash bits */
__u8 hs_min_bits;
__u8 hs_min_bits;
/** max hash bits */
__u8 hs_max_bits;
__u8 hs_max_bits;
/** bits for rehash */
__u8 hs_rehash_bits;
__u8 hs_rehash_bits;
/** bits for each bucket */
__u8 hs_bkt_bits;
__u8 hs_bkt_bits;
/** resize min threshold */
__u16 hs_min_theta;
__u16 hs_min_theta;
/** resize max threshold */
__u16 hs_max_theta;
__u16 hs_max_theta;
/** resize count */
__u32 hs_rehash_count;
__u32 hs_rehash_count;
/** # of iterators (caller of cfs_hash_for_each_*) */
__u32 hs_iterators;
__u32 hs_iterators;
/** rehash workitem */
cfs_workitem_t hs_rehash_wi;
cfs_workitem_t hs_rehash_wi;
/** refcount on this hash table */
atomic_t hs_refcount;
atomic_t hs_refcount;
/** 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
/** serialize debug members */
spinlock_t hs_dep_lock;
/** max depth */
unsigned int hs_dep_max;
unsigned int hs_dep_max;
/** id of the deepest bucket */
unsigned int hs_dep_bkt;
unsigned int hs_dep_bkt;
/** offset in the deepest bucket */
unsigned int hs_dep_off;
unsigned int hs_dep_off;
/** bits when we found the max depth */
unsigned int hs_dep_bits;
unsigned int hs_dep_bits;
/** workitem to output max depth */
cfs_workitem_t hs_dep_wi;
cfs_workitem_t hs_dep_wi;
#endif
/** name of htable */
char hs_name[0];
char hs_name[0];
};
struct cfs_hash_lock_ops {
......@@ -324,11 +326,11 @@ struct cfs_hash_ops {
};
/** 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))
/** 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))
/** number of hlist for in bucket */
......@@ -433,19 +435,22 @@ cfs_hash_with_nblk_change(struct cfs_hash *hs)
static inline int
cfs_hash_is_exiting(struct cfs_hash *hs)
{ /* cfs_hash_destroy is called */
{
/* cfs_hash_destroy is called */
return hs->hs_exiting;
}
static inline int
cfs_hash_is_rehashing(struct cfs_hash *hs)
{ /* rehash is launched */
{
/* rehash is launched */
return hs->hs_rehash_bits != 0;
}
static inline int
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;
}
......@@ -758,7 +763,7 @@ static inline void
cfs_hash_bucket_validate(struct cfs_hash *hs, struct cfs_hash_bd *bd,
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);
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,
#endif /* CFS_HASH_DEBUG_LEVEL */
#define CFS_HASH_THETA_BITS 10
#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_THETA_BITS 10
#define CFS_HASH_MIN_THETA (1U << (CFS_HASH_THETA_BITS - 1))
#define CFS_HASH_MAX_THETA (1U << (CFS_HASH_THETA_BITS + 1))
/* Return integer component of theta */
static inline int __cfs_hash_theta_int(int theta)
......@@ -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) */
#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++)
/** iterate over all buckets of @hs */
#define cfs_hash_for_each_bucket(hs, bd, pos) \
for (pos = 0; \
pos < CFS_HASH_NBKT(hs) && \
#define cfs_hash_for_each_bucket(hs, bd, pos) \
for (pos = 0; \
pos < CFS_HASH_NBKT(hs) && \
((bd)->bd_bucket = (hs)->hs_buckets[pos]) != NULL; pos++)
/** iterate over all hlist of bucket @bd */
#define cfs_hash_bd_for_each_hlist(hs, bd, hlist) \
for ((bd)->bd_offset = 0; \
(bd)->bd_offset < CFS_HASH_BKT_NHLIST(hs) && \
(hlist = cfs_hash_bd_hhead(hs, bd)) != NULL; \
#define cfs_hash_bd_for_each_hlist(hs, bd, hlist) \
for ((bd)->bd_offset = 0; \
(bd)->bd_offset < CFS_HASH_BKT_NHLIST(hs) && \
(hlist = cfs_hash_bd_hhead(hs, bd)) != NULL; \
(bd)->bd_offset++)
/* !__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