bcachefs: s/usage_lock/mark_lock
authorKent Overstreet <kent.overstreet@gmail.com>
Mon, 26 Nov 2018 05:13:33 +0000 (00:13 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:13 +0000 (17:08 -0400)
better describes what it's for, and we're going to call a new lock
usage_lock

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/alloc_background.c
fs/bcachefs/alloc_foreground.c
fs/bcachefs/bcachefs.h
fs/bcachefs/btree_gc.c
fs/bcachefs/btree_update_interior.c
fs/bcachefs/buckets.c
fs/bcachefs/buckets.h
fs/bcachefs/io.c
fs/bcachefs/journal.c
fs/bcachefs/super.c

index 8756b2efb53e1d1ebdb6f1d429fd5e8732f742a4..9c9464efd333f7c99033de96749e40dcafe75795 100644 (file)
@@ -218,9 +218,9 @@ static void bch2_alloc_read_key(struct bch_fs *c, struct bkey_s_c k)
        if (a.k->p.offset >= ca->mi.nbuckets)
                return;
 
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
        __alloc_read_key(bucket(ca, a.k->p.offset), a.v);
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
 }
 
 int bch2_alloc_read(struct bch_fs *c, struct list_head *journal_replay_list)
@@ -288,12 +288,12 @@ static int __bch2_alloc_write_key(struct bch_fs *c, struct bch_dev *ca,
 
        a->k.p = POS(ca->dev_idx, b);
 
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
        g = bucket(ca, b);
        m = bucket_cmpxchg(g, m, m.dirty = false);
 
        __alloc_write_key(a, g, m);
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
 
        bch2_btree_iter_cond_resched(iter);
 
@@ -804,7 +804,7 @@ static bool bch2_invalidate_one_bucket(struct bch_fs *c, struct bch_dev *ca,
 {
        struct bucket_mark m;
 
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
        spin_lock(&c->freelist_lock);
 
        bch2_invalidate_bucket(c, ca, bucket, &m);
@@ -817,7 +817,7 @@ static bool bch2_invalidate_one_bucket(struct bch_fs *c, struct bch_dev *ca,
        bucket_io_clock_reset(c, ca, bucket, READ);
        bucket_io_clock_reset(c, ca, bucket, WRITE);
 
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
 
        if (m.journal_seq_valid) {
                u64 journal_seq = atomic64_read(&c->journal.seq);
@@ -1345,7 +1345,7 @@ static int __bch2_fs_allocator_start(struct bch_fs *c)
                struct bucket_mark m;
 
                down_read(&ca->bucket_lock);
-               percpu_down_read(&c->usage_lock);
+               percpu_down_read(&c->mark_lock);
 
                buckets = bucket_array(ca);
 
@@ -1369,7 +1369,7 @@ static int __bch2_fs_allocator_start(struct bch_fs *c)
                        if (fifo_full(&ca->free[RESERVE_BTREE]))
                                break;
                }
-               percpu_up_read(&c->usage_lock);
+               percpu_up_read(&c->mark_lock);
                up_read(&ca->bucket_lock);
        }
 
index ddcf2c407764a90955a64d113384cb0df3ebe14f..3e77af4305a556c429c7d662b0d3667036f2bda8 100644 (file)
@@ -101,7 +101,7 @@ void __bch2_open_bucket_put(struct bch_fs *c, struct open_bucket *ob)
                return;
        }
 
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
        spin_lock(&ob->lock);
 
        bch2_mark_alloc_bucket(c, ca, PTR_BUCKET_NR(ca, &ob->ptr),
@@ -109,7 +109,7 @@ void __bch2_open_bucket_put(struct bch_fs *c, struct open_bucket *ob)
        ob->valid = false;
 
        spin_unlock(&ob->lock);
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
 
        spin_lock(&c->freelist_lock);
        ob->freelist = c->open_buckets_freelist;
@@ -441,7 +441,7 @@ static int ec_stripe_alloc(struct bch_fs *c, struct ec_stripe_head *h)
        open_bucket_for_each(c, &h->blocks, ob, i)
                __clear_bit(ob->ptr.dev, devs.d);
 
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
        rcu_read_lock();
 
        if (h->parity.nr < h->redundancy) {
@@ -477,12 +477,12 @@ static int ec_stripe_alloc(struct bch_fs *c, struct ec_stripe_head *h)
        }
 
        rcu_read_unlock();
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
 
        return bch2_ec_stripe_new_alloc(c, h);
 err:
        rcu_read_unlock();
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
        return -1;
 }
 
@@ -638,7 +638,7 @@ static int open_bucket_add_buckets(struct bch_fs *c,
        if (*nr_effective >= nr_replicas)
                return 0;
 
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
        rcu_read_lock();
 
 retry_blocking:
@@ -655,7 +655,7 @@ retry_blocking:
        }
 
        rcu_read_unlock();
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
 
        return ret;
 }
index 48926fda44ff4343304c6d1b0294517a59795807..829b2c8b067b97a747d438e2e8c16909fbd0dc0a 100644 (file)
@@ -390,7 +390,7 @@ struct bch_dev {
 
        /*
         * Buckets:
-        * Per-bucket arrays are protected by c->usage_lock, bucket_lock and
+        * Per-bucket arrays are protected by c->mark_lock, bucket_lock and
         * gc_lock, for device resize - holding any is sufficient for access:
         * Or rcu_read_lock(), but only for ptr_stale():
         */
@@ -617,7 +617,7 @@ struct bch_fs {
 
        struct bch_fs_usage __percpu *usage[2];
 
-       struct percpu_rw_semaphore usage_lock;
+       struct percpu_rw_semaphore mark_lock;
 
        /*
         * When we invalidate buckets, we use both the priority and the amount
index 1f99c5cb3439d9f7b0075e58cc1ae37178109dfa..75ea243d4bbc04a7cc9e4b0cb24952450e260054 100644 (file)
@@ -351,7 +351,7 @@ void bch2_mark_dev_superblock(struct bch_fs *c, struct bch_dev *ca,
         */
        if (c) {
                lockdep_assert_held(&c->sb_lock);
-               percpu_down_read(&c->usage_lock);
+               percpu_down_read(&c->mark_lock);
        } else {
                preempt_disable();
        }
@@ -376,7 +376,7 @@ void bch2_mark_dev_superblock(struct bch_fs *c, struct bch_dev *ca,
        }
 
        if (c) {
-               percpu_up_read(&c->usage_lock);
+               percpu_up_read(&c->mark_lock);
        } else {
                preempt_enable();
        }
@@ -422,7 +422,7 @@ static void bch2_mark_allocator_buckets(struct bch_fs *c)
        size_t i, j, iter;
        unsigned ci;
 
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
 
        spin_lock(&c->freelist_lock);
        gc_pos_set(c, gc_pos_alloc(c, NULL));
@@ -458,7 +458,7 @@ static void bch2_mark_allocator_buckets(struct bch_fs *c)
                spin_unlock(&ob->lock);
        }
 
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
 }
 
 static void bch2_gc_free(struct bch_fs *c)
@@ -578,7 +578,7 @@ static void bch2_gc_done(struct bch_fs *c, bool initial)
 #define copy_fs_field(_f, _msg, ...)                                   \
        copy_field(_f, "fs has wrong " _msg, ##__VA_ARGS__)
 
-       percpu_down_write(&c->usage_lock);
+       percpu_down_write(&c->mark_lock);
 
        if (initial) {
                bch2_gc_done_nocheck(c);
@@ -698,7 +698,7 @@ static void bch2_gc_done(struct bch_fs *c, bool initial)
                preempt_enable();
        }
 out:
-       percpu_up_write(&c->usage_lock);
+       percpu_up_write(&c->mark_lock);
 
 #undef copy_fs_field
 #undef copy_dev_field
@@ -743,7 +743,7 @@ static int bch2_gc_start(struct bch_fs *c)
                }
        }
 
-       percpu_down_write(&c->usage_lock);
+       percpu_down_write(&c->mark_lock);
 
        for_each_member_device(ca, c, i) {
                struct bucket_array *dst = __bucket_array(ca, 1);
@@ -757,7 +757,7 @@ static int bch2_gc_start(struct bch_fs *c)
                        dst->b[b]._mark.gen = src->b[b].mark.gen;
        };
 
-       percpu_up_write(&c->usage_lock);
+       percpu_up_write(&c->mark_lock);
 
        return bch2_ec_mem_alloc(c, true);
 }
index 83a72cccb870f54c708db58d6a9dc9fe4e347169..a314bda544dd295efe7aeee39a7e99c59f4d4452 100644 (file)
@@ -1062,7 +1062,7 @@ static void bch2_btree_set_root_inmem(struct btree_update *as, struct btree *b)
        __bch2_btree_set_root_inmem(c, b);
 
        mutex_lock(&c->btree_interior_update_lock);
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
 
        bch2_mark_key_locked(c, bkey_i_to_s_c(&b->key),
                      true, 0,
@@ -1076,7 +1076,7 @@ static void bch2_btree_set_root_inmem(struct btree_update *as, struct btree *b)
        bch2_fs_usage_apply(c, &stats, &as->reserve->disk_res,
                            gc_pos_btree_root(b->btree_id));
 
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
        mutex_unlock(&c->btree_interior_update_lock);
 }
 
@@ -1155,7 +1155,7 @@ static void bch2_insert_fixup_btree_ptr(struct btree_update *as, struct btree *b
        BUG_ON(insert->k.u64s > bch_btree_keys_u64s_remaining(c, b));
 
        mutex_lock(&c->btree_interior_update_lock);
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
 
        bch2_mark_key_locked(c, bkey_i_to_s_c(insert),
                             true, 0,
@@ -1177,7 +1177,7 @@ static void bch2_insert_fixup_btree_ptr(struct btree_update *as, struct btree *b
        bch2_fs_usage_apply(c, &stats, &as->reserve->disk_res,
                            gc_pos_btree_node(b));
 
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
        mutex_unlock(&c->btree_interior_update_lock);
 
        bch2_btree_bset_insert_key(iter, b, node_iter, insert);
@@ -1965,7 +1965,7 @@ static void __bch2_btree_node_update_key(struct bch_fs *c,
                bch2_btree_node_lock_write(b, iter);
 
                mutex_lock(&c->btree_interior_update_lock);
-               percpu_down_read(&c->usage_lock);
+               percpu_down_read(&c->mark_lock);
 
                bch2_mark_key_locked(c, bkey_i_to_s_c(&new_key->k_i),
                              true, 0,
@@ -1977,7 +1977,7 @@ static void __bch2_btree_node_update_key(struct bch_fs *c,
                bch2_fs_usage_apply(c, &stats, &as->reserve->disk_res,
                                    gc_pos_btree_root(b->btree_id));
 
-               percpu_up_read(&c->usage_lock);
+               percpu_up_read(&c->mark_lock);
                mutex_unlock(&c->btree_interior_update_lock);
 
                if (PTR_HASH(&new_key->k_i) != PTR_HASH(&b->key)) {
index cc0a318ff133f9aba6dd5ff1657fb5a0becbb0e2..c4fe703d16811ed764005d45bc63dd3c2c1cb3bc 100644 (file)
@@ -323,7 +323,7 @@ void bch2_fs_usage_apply(struct bch_fs *c,
        s64 added = sum.data + sum.reserved;
        s64 should_not_have_added;
 
-       percpu_rwsem_assert_held(&c->usage_lock);
+       percpu_rwsem_assert_held(&c->mark_lock);
 
        /*
         * Not allowed to reduce sectors_available except by getting a
@@ -364,7 +364,7 @@ static void bch2_dev_usage_update(struct bch_fs *c, struct bch_dev *ca,
 {
        struct bch_dev_usage *dev_usage;
 
-       percpu_rwsem_assert_held(&c->usage_lock);
+       percpu_rwsem_assert_held(&c->mark_lock);
 
        bch2_fs_inconsistent_on(old.data_type && new.data_type &&
                                old.data_type != new.data_type, c,
@@ -413,14 +413,14 @@ void bch2_dev_usage_from_buckets(struct bch_fs *c, struct bch_dev *ca)
        struct bucket_array *buckets;
        struct bucket *g;
 
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
        fs_usage = this_cpu_ptr(c->usage[0]);
        buckets = bucket_array(ca);
 
        for_each_bucket(g, buckets)
                if (g->mark.data_type)
                        bch2_dev_usage_update(c, ca, fs_usage, old, g->mark, false);
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
 }
 
 #define bucket_data_cmpxchg(c, ca, fs_usage, g, new, expr)     \
@@ -455,7 +455,7 @@ static void __bch2_invalidate_bucket(struct bch_fs *c, struct bch_dev *ca,
 void bch2_invalidate_bucket(struct bch_fs *c, struct bch_dev *ca,
                            size_t b, struct bucket_mark *old)
 {
-       percpu_rwsem_assert_held(&c->usage_lock);
+       percpu_rwsem_assert_held(&c->mark_lock);
 
        __bch2_invalidate_bucket(c, ca, b, old, false);
 
@@ -484,7 +484,7 @@ void bch2_mark_alloc_bucket(struct bch_fs *c, struct bch_dev *ca,
                            size_t b, bool owned_by_allocator,
                            struct gc_pos pos, unsigned flags)
 {
-       percpu_rwsem_assert_held(&c->usage_lock);
+       percpu_rwsem_assert_held(&c->mark_lock);
 
        if (!(flags & BCH_BUCKET_MARK_GC))
                __bch2_mark_alloc_bucket(c, ca, b, owned_by_allocator, false);
@@ -531,7 +531,7 @@ void bch2_mark_metadata_bucket(struct bch_fs *c, struct bch_dev *ca,
        preempt_disable();
 
        if (likely(c)) {
-               percpu_rwsem_assert_held(&c->usage_lock);
+               percpu_rwsem_assert_held(&c->mark_lock);
 
                if (!(flags & BCH_BUCKET_MARK_GC))
                        __bch2_mark_metadata_bucket(c, ca, b, type, sectors,
@@ -924,10 +924,10 @@ int bch2_mark_key(struct bch_fs *c, struct bkey_s_c k,
 {
        int ret;
 
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
        ret = bch2_mark_key_locked(c, k, inserting, sectors,
                                   pos, stats, journal_seq, flags);
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
 
        return ret;
 }
@@ -946,7 +946,7 @@ void bch2_mark_update(struct btree_insert *trans,
        if (!btree_node_type_needs_gc(iter->btree_id))
                return;
 
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
 
        if (!(trans->flags & BTREE_INSERT_JOURNAL_REPLAY))
                bch2_mark_key_locked(c, bkey_i_to_s_c(insert->k), true,
@@ -1003,7 +1003,7 @@ void bch2_mark_update(struct btree_insert *trans,
 
        bch2_fs_usage_apply(c, &stats, trans->disk_res, pos);
 
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
 }
 
 /* Disk reservations: */
@@ -1020,12 +1020,12 @@ static u64 bch2_recalc_sectors_available(struct bch_fs *c)
 
 void __bch2_disk_reservation_put(struct bch_fs *c, struct disk_reservation *res)
 {
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
        this_cpu_sub(c->usage[0]->online_reserved,
                     res->sectors);
 
        bch2_fs_stats_verify(c);
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
 
        res->sectors = 0;
 }
@@ -1040,7 +1040,7 @@ int bch2_disk_reservation_add(struct bch_fs *c, struct disk_reservation *res,
        s64 sectors_available;
        int ret;
 
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
        preempt_disable();
        stats = this_cpu_ptr(c->usage[0]);
 
@@ -1054,7 +1054,7 @@ int bch2_disk_reservation_add(struct bch_fs *c, struct disk_reservation *res,
 
                if (get < sectors) {
                        preempt_enable();
-                       percpu_up_read(&c->usage_lock);
+                       percpu_up_read(&c->mark_lock);
                        goto recalculate;
                }
        } while ((v = atomic64_cmpxchg(&c->sectors_available,
@@ -1070,7 +1070,7 @@ out:
        bch2_disk_reservations_verify(c, flags);
        bch2_fs_stats_verify(c);
        preempt_enable();
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
        return 0;
 
 recalculate:
@@ -1091,7 +1091,7 @@ recalculate:
                        return -EINTR;
        }
 
-       percpu_down_write(&c->usage_lock);
+       percpu_down_write(&c->mark_lock);
        sectors_available = bch2_recalc_sectors_available(c);
 
        if (sectors <= sectors_available ||
@@ -1109,7 +1109,7 @@ recalculate:
        }
 
        bch2_fs_stats_verify(c);
-       percpu_up_write(&c->usage_lock);
+       percpu_up_write(&c->mark_lock);
 
        if (!(flags & BCH_DISK_RESERVATION_GC_LOCK_HELD))
                up_read(&c->gc_lock);
@@ -1185,7 +1185,7 @@ int bch2_dev_buckets_resize(struct bch_fs *c, struct bch_dev *ca, u64 nbuckets)
        if (resize) {
                down_write(&c->gc_lock);
                down_write(&ca->bucket_lock);
-               percpu_down_write(&c->usage_lock);
+               percpu_down_write(&c->mark_lock);
        }
 
        old_buckets = bucket_array(ca);
@@ -1215,7 +1215,7 @@ int bch2_dev_buckets_resize(struct bch_fs *c, struct bch_dev *ca, u64 nbuckets)
        swap(ca->buckets_written, buckets_written);
 
        if (resize)
-               percpu_up_write(&c->usage_lock);
+               percpu_up_write(&c->mark_lock);
 
        spin_lock(&c->freelist_lock);
        for (i = 0; i < RESERVE_NR; i++) {
index d34181c78f9b45af02479aab6fb66797d6244b43..a13f7e068c6114c249d0afee8340fa107d53d49f 100644 (file)
@@ -34,7 +34,7 @@ static inline struct bucket_array *__bucket_array(struct bch_dev *ca,
 {
        return rcu_dereference_check(ca->buckets[gc],
                                     !ca->fs ||
-                                    percpu_rwsem_is_held(&ca->fs->usage_lock) ||
+                                    percpu_rwsem_is_held(&ca->fs->mark_lock) ||
                                     lockdep_is_held(&ca->fs->gc_lock) ||
                                     lockdep_is_held(&ca->bucket_lock));
 }
index 3e990709fedb610292bebe67be3a6b0da1a1c299..542d8ee6144c7f0f709f955b4296d4e0683f34a7 100644 (file)
@@ -1740,9 +1740,9 @@ noclone:
 
        bch2_increment_clock(c, bio_sectors(&rbio->bio), READ);
 
-       percpu_down_read(&c->usage_lock);
+       percpu_down_read(&c->mark_lock);
        bucket_io_clock_reset(c, ca, PTR_BUCKET_NR(ca, &pick.ptr), READ);
-       percpu_up_read(&c->usage_lock);
+       percpu_up_read(&c->mark_lock);
 
        if (likely(!(flags & (BCH_READ_IN_RETRY|BCH_READ_LAST_FRAGMENT)))) {
                bio_inc_remaining(&orig->bio);
index 2f8dae4013af6b7495fed1624d8c2c0c98989f7b..310553bd53235fd7c1f451ffe7b41346b5e23270 100644 (file)
@@ -754,7 +754,7 @@ static int __bch2_set_nr_journal_buckets(struct bch_dev *ca, unsigned nr,
                }
 
                if (c) {
-                       percpu_down_read(&c->usage_lock);
+                       percpu_down_read(&c->mark_lock);
                        spin_lock(&c->journal.lock);
                } else {
                        preempt_disable();
@@ -782,7 +782,7 @@ static int __bch2_set_nr_journal_buckets(struct bch_dev *ca, unsigned nr,
 
                if (c) {
                        spin_unlock(&c->journal.lock);
-                       percpu_up_read(&c->usage_lock);
+                       percpu_up_read(&c->mark_lock);
                } else {
                        preempt_enable();
                }
index 7405b5cdd1bfe94b49961461f29dcb3af7019cd9..cc14d43104364fc393dcdfa7f03184308ff23762 100644 (file)
@@ -374,7 +374,7 @@ static void bch2_fs_free(struct bch_fs *c)
        bch2_io_clock_exit(&c->io_clock[WRITE]);
        bch2_io_clock_exit(&c->io_clock[READ]);
        bch2_fs_compress_exit(c);
-       percpu_free_rwsem(&c->usage_lock);
+       percpu_free_rwsem(&c->mark_lock);
        free_percpu(c->usage[0]);
        mempool_exit(&c->btree_iters_pool);
        mempool_exit(&c->btree_bounce_pool);
@@ -608,7 +608,7 @@ static struct bch_fs *bch2_fs_alloc(struct bch_sb *sb, struct bch_opts opts)
                            offsetof(struct btree_write_bio, wbio.bio)),
                        BIOSET_NEED_BVECS) ||
            !(c->usage[0] = alloc_percpu(struct bch_fs_usage)) ||
-           percpu_init_rwsem(&c->usage_lock) ||
+           percpu_init_rwsem(&c->mark_lock) ||
            mempool_init_kvpmalloc_pool(&c->btree_bounce_pool, 1,
                                        btree_bytes(c)) ||
            mempool_init_kmalloc_pool(&c->btree_iters_pool, 1,