diff options
Diffstat (limited to 'fs/bcachefs/lru.h')
-rw-r--r-- | fs/bcachefs/lru.h | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/fs/bcachefs/lru.h b/fs/bcachefs/lru.h index 7a3be20a8523..be66bf9ad809 100644 --- a/fs/bcachefs/lru.h +++ b/fs/bcachefs/lru.h @@ -5,13 +5,6 @@ #define LRU_TIME_BITS 48 #define LRU_TIME_MAX ((1ULL << LRU_TIME_BITS) - 1) -static inline struct bpos lru_pos(u16 lru_id, u64 dev_bucket, u64 time) -{ - EBUG_ON(time > LRU_TIME_MAX); - - return POS(((u64) lru_id << LRU_TIME_BITS)|time, dev_bucket); -} - static inline u64 lru_pos_id(struct bpos pos) { return pos.inode >> LRU_TIME_BITS; @@ -22,6 +15,18 @@ static inline u64 lru_pos_time(struct bpos pos) return pos.inode & ~(~0ULL << LRU_TIME_BITS); } +static inline struct bpos lru_pos(u16 lru_id, u64 dev_bucket, u64 time) +{ + struct bpos pos = POS(((u64) lru_id << LRU_TIME_BITS)|time, dev_bucket); + + EBUG_ON(time > LRU_TIME_MAX); + EBUG_ON(lru_pos_id(pos) != lru_id); + EBUG_ON(lru_pos_time(pos) != time); + EBUG_ON(pos.offset != dev_bucket); + + return pos; +} + #define BCH_LRU_TYPES() \ x(read) \ x(fragmentation) |