aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/bcache
diff options
context:
space:
mode:
authorKent Overstreet <kmo@daterainc.com>2013-12-20 20:24:46 -0500
committerKent Overstreet <kmo@daterainc.com>2014-01-08 16:05:11 -0500
commit9a02b7eeeb446a0418ec83afc80eb38bc188f5c8 (patch)
tree5bd89524457deb026aae402150f0f81553f7f7c8 /drivers/md/bcache
parent0a45114534766058193eb2605c136562a4f7bcc8 (diff)
bcache: Remove/fix some header dependencies
In the process of disentagling/libraryizing bset.c from the rest of the bcache code. Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Diffstat (limited to 'drivers/md/bcache')
-rw-r--r--drivers/md/bcache/bcache.h23
-rw-r--r--drivers/md/bcache/bset.h21
-rw-r--r--drivers/md/bcache/util.h6
3 files changed, 26 insertions, 24 deletions
diff --git a/drivers/md/bcache/bcache.h b/drivers/md/bcache/bcache.h
index 25f017248a81..3fd87323368c 100644
--- a/drivers/md/bcache/bcache.h
+++ b/drivers/md/bcache/bcache.h
@@ -704,11 +704,6 @@ struct bbio {
704 struct bio bio; 704 struct bio bio;
705}; 705};
706 706
707static inline unsigned local_clock_us(void)
708{
709 return local_clock() >> 10;
710}
711
712#define BTREE_PRIO USHRT_MAX 707#define BTREE_PRIO USHRT_MAX
713#define INITIAL_PRIO 32768 708#define INITIAL_PRIO 32768
714 709
@@ -776,6 +771,24 @@ static inline struct bucket *PTR_BUCKET(struct cache_set *c,
776 return PTR_CACHE(c, k, ptr)->buckets + PTR_BUCKET_NR(c, k, ptr); 771 return PTR_CACHE(c, k, ptr)->buckets + PTR_BUCKET_NR(c, k, ptr);
777} 772}
778 773
774static inline uint8_t gen_after(uint8_t a, uint8_t b)
775{
776 uint8_t r = a - b;
777 return r > 128U ? 0 : r;
778}
779
780static inline uint8_t ptr_stale(struct cache_set *c, const struct bkey *k,
781 unsigned i)
782{
783 return gen_after(PTR_BUCKET(c, k, i)->gen, PTR_GEN(k, i));
784}
785
786static inline bool ptr_available(struct cache_set *c, const struct bkey *k,
787 unsigned i)
788{
789 return (PTR_DEV(k, i) < MAX_CACHES_PER_SET) && PTR_CACHE(c, k, i);
790}
791
779/* Btree key macros */ 792/* Btree key macros */
780 793
781static inline void bkey_init(struct bkey *k) 794static inline void bkey_init(struct bkey *k)
diff --git a/drivers/md/bcache/bset.h b/drivers/md/bcache/bset.h
index 1d3c24f9fa0e..ba02f055bc64 100644
--- a/drivers/md/bcache/bset.h
+++ b/drivers/md/bcache/bset.h
@@ -142,6 +142,8 @@
142 * first key in that range of bytes again. 142 * first key in that range of bytes again.
143 */ 143 */
144 144
145struct cache_set;
146
145/* Btree key comparison/iteration */ 147/* Btree key comparison/iteration */
146 148
147#define MAX_BSETS 4U 149#define MAX_BSETS 4U
@@ -282,25 +284,6 @@ bool bch_extent_ptr_invalid(struct cache_set *, const struct bkey *);
282 284
283bool bch_ptr_bad(struct btree *, const struct bkey *); 285bool bch_ptr_bad(struct btree *, const struct bkey *);
284 286
285static inline uint8_t gen_after(uint8_t a, uint8_t b)
286{
287 uint8_t r = a - b;
288 return r > 128U ? 0 : r;
289}
290
291static inline uint8_t ptr_stale(struct cache_set *c, const struct bkey *k,
292 unsigned i)
293{
294 return gen_after(PTR_BUCKET(c, k, i)->gen, PTR_GEN(k, i));
295}
296
297static inline bool ptr_available(struct cache_set *c, const struct bkey *k,
298 unsigned i)
299{
300 return (PTR_DEV(k, i) < MAX_CACHES_PER_SET) && PTR_CACHE(c, k, i);
301}
302
303
304typedef bool (*ptr_filter_fn)(struct btree *, const struct bkey *); 287typedef bool (*ptr_filter_fn)(struct btree *, const struct bkey *);
305 288
306struct bkey *bch_btree_iter_next(struct btree_iter *); 289struct bkey *bch_btree_iter_next(struct btree_iter *);
diff --git a/drivers/md/bcache/util.h b/drivers/md/bcache/util.h
index 1030c6020e98..3ebaef5f645b 100644
--- a/drivers/md/bcache/util.h
+++ b/drivers/md/bcache/util.h
@@ -2,6 +2,7 @@
2#ifndef _BCACHE_UTIL_H 2#ifndef _BCACHE_UTIL_H
3#define _BCACHE_UTIL_H 3#define _BCACHE_UTIL_H
4 4
5#include <linux/blkdev.h>
5#include <linux/errno.h> 6#include <linux/errno.h>
6#include <linux/kernel.h> 7#include <linux/kernel.h>
7#include <linux/llist.h> 8#include <linux/llist.h>
@@ -391,6 +392,11 @@ struct time_stats {
391 392
392void bch_time_stats_update(struct time_stats *stats, uint64_t time); 393void bch_time_stats_update(struct time_stats *stats, uint64_t time);
393 394
395static inline unsigned local_clock_us(void)
396{
397 return local_clock() >> 10;
398}
399
394#define NSEC_PER_ns 1L 400#define NSEC_PER_ns 1L
395#define NSEC_PER_us NSEC_PER_USEC 401#define NSEC_PER_us NSEC_PER_USEC
396#define NSEC_PER_ms NSEC_PER_MSEC 402#define NSEC_PER_ms NSEC_PER_MSEC