diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-08-10 12:34:18 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2022-08-11 17:32:31 -0400 |
commit | 94658cd99149cff0d978d8b29301496b60a3e678 (patch) | |
tree | 8daba319a9ed72ae97a3caef8f0469fb70b13e95 | |
parent | 5cb7d3b0c8e4c4315a0c262069c0e1c2b387010d (diff) |
bcachefs: six_lock_counts() is now in six.c
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r-- | fs/bcachefs/bcachefs.h | 5 | ||||
-rw-r--r-- | fs/bcachefs/btree_iter.c | 30 | ||||
-rw-r--r-- | fs/bcachefs/trace.c | 2 | ||||
-rw-r--r-- | include/trace/events/bcachefs.h | 4 |
4 files changed, 10 insertions, 31 deletions
diff --git a/fs/bcachefs/bcachefs.h b/fs/bcachefs/bcachefs.h index 52b7728ca9b3..8ffdb4dee47a 100644 --- a/fs/bcachefs/bcachefs.h +++ b/fs/bcachefs/bcachefs.h @@ -378,11 +378,6 @@ enum bch_time_stats { struct btree; -struct lock_count { - unsigned read; - unsigned intent; -}; - enum gc_phase { GC_PHASE_NOT_RUNNING, GC_PHASE_START, diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c index 47b40d21bc08..a40bdb38045a 100644 --- a/fs/bcachefs/btree_iter.c +++ b/fs/bcachefs/btree_iter.c @@ -143,13 +143,13 @@ void bch2_btree_node_unlock_write(struct btree_trans *trans, bch2_btree_node_unlock_write_inlined(trans, path, b); } -static struct lock_count btree_node_lock_counts(struct btree_trans *trans, - struct btree_path *skip, - struct btree *b, - unsigned level) +struct six_lock_count bch2_btree_node_lock_counts(struct btree_trans *trans, + struct btree_path *skip, + struct btree *b, + unsigned level) { struct btree_path *path; - struct lock_count ret = { 0, 0 }; + struct six_lock_count ret = { 0, 0 }; if (IS_ERR_OR_NULL(b)) return ret; @@ -163,22 +163,6 @@ static struct lock_count btree_node_lock_counts(struct btree_trans *trans, return ret; } -static struct lock_count six_lock_counts(struct six_lock *lock) -{ - struct lock_count ret = { 0, lock->state.intent_lock }; - - if (!lock->readers) - ret.read += lock->state.read_lock; - else { - int cpu; - - for_each_possible_cpu(cpu) - ret.read += *per_cpu_ptr(lock->readers, cpu); - } - - return ret; -} - static inline void six_lock_readers_add(struct six_lock *lock, int nr) { if (!lock->readers) @@ -189,7 +173,7 @@ static inline void six_lock_readers_add(struct six_lock *lock, int nr) void __bch2_btree_node_lock_write(struct btree_trans *trans, struct btree *b) { - int readers = btree_node_lock_counts(trans, NULL, b, b->c.level).read; + int readers = bch2_btree_node_lock_counts(trans, NULL, b, b->c.level).read; /* * Must drop our read locks before calling six_lock_write() - @@ -272,7 +256,7 @@ bool bch2_btree_node_upgrade(struct btree_trans *trans, path->btree_id, &path->pos, btree_node_locked(path, level), - btree_node_lock_counts(trans, NULL, b, level), + bch2_btree_node_lock_counts(trans, NULL, b, level), six_lock_counts(&b->c.lock)); return false; success: diff --git a/fs/bcachefs/trace.c b/fs/bcachefs/trace.c index 59e8dfa3d245..705496d0cc96 100644 --- a/fs/bcachefs/trace.c +++ b/fs/bcachefs/trace.c @@ -6,7 +6,7 @@ #include "keylist.h" #include <linux/blktrace_api.h> -#include "keylist.h" +#include <linux/six.h> #define CREATE_TRACE_POINTS #include <trace/events/bcachefs.h> diff --git a/include/trace/events/bcachefs.h b/include/trace/events/bcachefs.h index e0575faceba1..c8c4c0348280 100644 --- a/include/trace/events/bcachefs.h +++ b/include/trace/events/bcachefs.h @@ -427,8 +427,8 @@ TRACE_EVENT(btree_node_upgrade_fail, enum btree_id btree_id, struct bpos *pos, bool locked, - struct lock_count self_lock_count, - struct lock_count lock_count), + struct six_lock_count self_lock_count, + struct six_lock_count lock_count), TP_ARGS(trans_fn, caller_ip, btree_id, pos, locked, self_lock_count, lock_count), |