diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-07-20 18:09:44 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-07-20 18:09:44 -0400 |
commit | 44fc32e7ef89d794854409d98d3d1c3fe8fb3580 (patch) | |
tree | 8dd30cbe9ab6ea2178ed6d847176bef3acdcad1c /libbcachefs/buckets.c | |
parent | a7b0ba44f04edfddb4db77e962094c061aa4be45 (diff) |
Update bcachefs sources to ee560a3929 bcachefs: Print version, options earlier in startup path
Diffstat (limited to 'libbcachefs/buckets.c')
-rw-r--r-- | libbcachefs/buckets.c | 73 |
1 files changed, 4 insertions, 69 deletions
diff --git a/libbcachefs/buckets.c b/libbcachefs/buckets.c index 797ef5ec..7bb7f0ca 100644 --- a/libbcachefs/buckets.c +++ b/libbcachefs/buckets.c @@ -102,18 +102,6 @@ void bch2_dev_usage_read_fast(struct bch_dev *ca, struct bch_dev_usage *usage) } while (read_seqcount_retry(&c->usage_lock, seq)); } -static inline struct bch_fs_usage *fs_usage_ptr(struct bch_fs *c, - unsigned journal_seq, - bool gc) -{ - percpu_rwsem_assert_held(&c->mark_lock); - BUG_ON(!gc && !journal_seq); - - return this_cpu_ptr(gc - ? c->usage_gc - : c->usage[journal_seq & JOURNAL_BUF_MASK]); -} - u64 bch2_fs_usage_read_one(struct bch_fs *c, u64 *v) { ssize_t offset = v - (u64 *) c->usage_base; @@ -460,7 +448,7 @@ static int __replicas_deltas_realloc(struct btree_trans *trans, unsigned more, return 0; } -static int replicas_deltas_realloc(struct btree_trans *trans, unsigned more) +int bch2_replicas_deltas_realloc(struct btree_trans *trans, unsigned more) { return allocate_dropping_locks_errcode(trans, __replicas_deltas_realloc(trans, more, _gfp)); @@ -479,7 +467,7 @@ static inline int update_replicas_list(struct btree_trans *trans, return 0; b = replicas_entry_bytes(r) + 8; - ret = replicas_deltas_realloc(trans, b); + ret = bch2_replicas_deltas_realloc(trans, b); if (ret) return ret; @@ -1137,38 +1125,6 @@ int bch2_mark_stripe(struct btree_trans *trans, return 0; } -int bch2_mark_inode(struct btree_trans *trans, - enum btree_id btree_id, unsigned level, - struct bkey_s_c old, struct bkey_s_c new, - unsigned flags) -{ - struct bch_fs *c = trans->c; - struct bch_fs_usage *fs_usage; - u64 journal_seq = trans->journal_res.seq; - - if (flags & BTREE_TRIGGER_INSERT) { - struct bch_inode_v3 *v = (struct bch_inode_v3 *) new.v; - - BUG_ON(!journal_seq); - BUG_ON(new.k->type != KEY_TYPE_inode_v3); - - v->bi_journal_seq = cpu_to_le64(journal_seq); - } - - if (flags & BTREE_TRIGGER_GC) { - percpu_down_read(&c->mark_lock); - preempt_disable(); - - fs_usage = fs_usage_ptr(c, journal_seq, flags & BTREE_TRIGGER_GC); - fs_usage->nr_inodes += bkey_is_inode(new.k); - fs_usage->nr_inodes -= bkey_is_inode(old.k); - - preempt_enable(); - percpu_up_read(&c->mark_lock); - } - return 0; -} - int bch2_mark_reservation(struct btree_trans *trans, enum btree_id btree_id, unsigned level, struct bkey_s_c old, struct bkey_s_c new, @@ -1272,7 +1228,7 @@ int bch2_mark_reflink_p(struct btree_trans *trans, BUG_ON(!(flags & BTREE_TRIGGER_GC)); - if (c->sb.version >= bcachefs_metadata_version_reflink_p_fix) { + if (c->sb.version_upgrade_complete >= bcachefs_metadata_version_reflink_p_fix) { idx -= le32_to_cpu(p.v->front_pad); end += le32_to_cpu(p.v->back_pad); } @@ -1715,27 +1671,6 @@ int bch2_trans_mark_stripe(struct btree_trans *trans, return ret; } -int bch2_trans_mark_inode(struct btree_trans *trans, - enum btree_id btree_id, unsigned level, - struct bkey_s_c old, - struct bkey_i *new, - unsigned flags) -{ - int nr = bkey_is_inode(&new->k) - bkey_is_inode(old.k); - - if (nr) { - int ret = replicas_deltas_realloc(trans, 0); - struct replicas_delta_list *d = trans->fs_usage_deltas; - - if (ret) - return ret; - - d->nr_inodes += nr; - } - - return 0; -} - int bch2_trans_mark_reservation(struct btree_trans *trans, enum btree_id btree_id, unsigned level, struct bkey_s_c old, @@ -1754,7 +1689,7 @@ int bch2_trans_mark_reservation(struct btree_trans *trans, sectors = -sectors; sectors *= replicas; - ret = replicas_deltas_realloc(trans, 0); + ret = bch2_replicas_deltas_realloc(trans, 0); if (ret) return ret; |