summaryrefslogtreecommitdiff
path: root/libbcachefs/journal_reclaim.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2018-12-12 06:21:55 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2018-12-12 06:25:37 -0500
commita10a41fa2b1a917b0f3b34d20175867f968b2d12 (patch)
treeb61aa3e0912c2a6928356aeb5273fb528b4f21ba /libbcachefs/journal_reclaim.c
parent0c7db4eca3e6519043c10288cb41f8a0ee634a0b (diff)
Update bcachefs sources to f7670cba39 bcachefs: Fix for building in userspace
Diffstat (limited to 'libbcachefs/journal_reclaim.c')
-rw-r--r--libbcachefs/journal_reclaim.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/libbcachefs/journal_reclaim.c b/libbcachefs/journal_reclaim.c
index 9ac65d03..d8d1b6b0 100644
--- a/libbcachefs/journal_reclaim.c
+++ b/libbcachefs/journal_reclaim.c
@@ -74,6 +74,25 @@ void bch2_journal_pin_drop(struct journal *j,
spin_unlock(&j->lock);
}
+void bch2_journal_pin_update(struct journal *j, u64 seq,
+ struct journal_entry_pin *pin,
+ journal_pin_flush_fn flush_fn)
+{
+ spin_lock(&j->lock);
+
+ if (pin->seq != seq) {
+ __journal_pin_drop(j, pin);
+ __journal_pin_add(j, seq, pin, flush_fn);
+ } else {
+ struct journal_entry_pin_list *pin_list =
+ journal_seq_pin(j, seq);
+
+ list_move(&pin->list, &pin_list->list);
+ }
+
+ spin_unlock(&j->lock);
+}
+
void bch2_journal_pin_add_if_older(struct journal *j,
struct journal_entry_pin *src_pin,
struct journal_entry_pin *pin,