summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-08-10 12:34:18 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2022-08-11 17:32:31 -0400
commit94658cd99149cff0d978d8b29301496b60a3e678 (patch)
tree8daba319a9ed72ae97a3caef8f0469fb70b13e95
parent5cb7d3b0c8e4c4315a0c262069c0e1c2b387010d (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.h5
-rw-r--r--fs/bcachefs/btree_iter.c30
-rw-r--r--fs/bcachefs/trace.c2
-rw-r--r--include/trace/events/bcachefs.h4
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),