Lines Matching +full:wait +full:- +full:pin
1 /* SPDX-License-Identifier: GPL-2.0 */
8 * The journal is treated as a circular buffer of buckets - a journal entry
16 * superblock - all the things that are frequently updated. This is for future
22 * Currently, we don't journal BTREE_REPLACE operations - this will hopefully be
23 * fixed eventually. This isn't a bug - BTREE_REPLACE is used for insertions
32 * journal entry still open - i.e. that has keys that haven't been flushed to
38 * zero, we pop it off - thus, the size of the fifo tells us the number of open
48 * might contain keys for many journal entries - we handle this by making sure
56 * last_seq - the oldest journal entry we still need. We write last_seq in each
61 * newest journal entry it contains - if we don't need that journal entry we
75 * allocate space for a journal write again - preferentially flushing btree
85 atomic_t *pin; member
98 struct closure_waitlist wait; member
110 struct closure_waitlist wait; member
118 DECLARE_FIFO(atomic_t, pin);
132 * journal writes it contains - so we know when a bucket can be reused.
148 /* 1 - discard in flight, -1 - discard completed */
163 (fifo_idx(&(c)->journal.pin, (l)) > fifo_idx(&(c)->journal.pin, (r)))
168 (!(j)->blocks_free || fifo_free(&(j)->pin) <= 1)