Lines Matching refs:l
13 struct nocow_lock_bucket *l = bucket_nocow_lock(t, dev_bucket);
16 for (i = 0; i < ARRAY_SIZE(l->b); i++)
17 if (l->b[i] == dev_bucket && atomic_read(&l->l[i]))
27 struct nocow_lock_bucket *l = bucket_nocow_lock(t, dev_bucket);
31 for (i = 0; i < ARRAY_SIZE(l->b); i++)
32 if (l->b[i] == dev_bucket) {
33 int v = atomic_sub_return(lock_val, &l->l[i]);
37 closure_wake_up(&l->wait);
44 bool __bch2_bucket_nocow_trylock(struct nocow_lock_bucket *l,
50 spin_lock(&l->lock);
52 for (i = 0; i < ARRAY_SIZE(l->b); i++)
53 if (l->b[i] == dev_bucket)
56 for (i = 0; i < ARRAY_SIZE(l->b); i++)
57 if (!atomic_read(&l->l[i])) {
58 l->b[i] = dev_bucket;
62 spin_unlock(&l->lock);
65 v = atomic_read(&l->l[i]);
69 v = atomic_read(&l->l[i]);
74 atomic_add(lock_val, &l->l[i]);
75 spin_unlock(&l->lock);
80 struct nocow_lock_bucket *l,
83 if (!__bch2_bucket_nocow_trylock(l, dev_bucket, flags)) {
87 __closure_wait_event(&l->wait, __bch2_bucket_nocow_trylock(l, dev_bucket, flags));
96 struct nocow_lock_bucket *l;
98 for (l = t->l; l < t->l + ARRAY_SIZE(t->l); l++) {
101 for (i = 0; i < ARRAY_SIZE(l->l); i++)
102 v |= atomic_read(&l->l[i]);
113 for (i = 0; i < ARRAY_SIZE(l->l); i++) {
114 int v = atomic_read(&l->l[i]);
116 bch2_bpos_to_text(out, u64_to_bucket(l->b[i]));
131 for (struct nocow_lock_bucket *l = t->l; l < t->l + ARRAY_SIZE(t->l); l++)
132 for (unsigned j = 0; j < ARRAY_SIZE(l->l); j++)
133 BUG_ON(atomic_read(&l->l[j]));
140 for (struct nocow_lock_bucket *l = t->l; l < t->l + ARRAY_SIZE(t->l); l++)
141 spin_lock_init(&l->lock);