summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-04-05 07:20:02 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:08:20 +0300
commit478259b749d442baaccbe18b02a7352ca1e012ae (patch)
tree1823d2613d9d317d9e915fd7f665281d29d6ed93
parent330581f16f3041e7cd4e4d8c3b7a569d663a8035 (diff)
downloadlinux-478259b749d442baaccbe18b02a7352ca1e012ae.tar.xz
bcachefs: delete duplicated code
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/journal.c13
-rw-r--r--fs/bcachefs/journal.h13
-rw-r--r--fs/bcachefs/recovery.c29
3 files changed, 16 insertions, 39 deletions
diff --git a/fs/bcachefs/journal.c b/fs/bcachefs/journal.c
index 2e84af8a044c..969612e612e0 100644
--- a/fs/bcachefs/journal.c
+++ b/fs/bcachefs/journal.c
@@ -55,19 +55,6 @@ static void bch2_journal_buf_init(struct journal *j)
buf->data->u64s = 0;
}
-static inline bool journal_entry_empty(struct jset *j)
-{
- struct jset_entry *i;
-
- if (j->seq != j->last_seq)
- return false;
-
- vstruct_for_each(j, i)
- if (i->type || i->u64s)
- return false;
- return true;
-}
-
void bch2_journal_halt(struct journal *j)
{
union journal_res_state old, new;
diff --git a/fs/bcachefs/journal.h b/fs/bcachefs/journal.h
index 3447b4ad462d..36066ea7de7a 100644
--- a/fs/bcachefs/journal.h
+++ b/fs/bcachefs/journal.h
@@ -231,6 +231,19 @@ static inline void bch2_journal_add_keys(struct journal *j, struct journal_res *
id, 0, k, k->k.u64s);
}
+static inline bool journal_entry_empty(struct jset *j)
+{
+ struct jset_entry *i;
+
+ if (j->seq != j->last_seq)
+ return false;
+
+ vstruct_for_each(j, i)
+ if (i->type == BCH_JSET_ENTRY_btree_keys && i->u64s)
+ return false;
+ return true;
+}
+
void __bch2_journal_buf_put(struct journal *, bool);
static inline void bch2_journal_buf_put(struct journal *j, unsigned idx,
diff --git a/fs/bcachefs/recovery.c b/fs/bcachefs/recovery.c
index 9411a1f550f3..b1fcc105cffd 100644
--- a/fs/bcachefs/recovery.c
+++ b/fs/bcachefs/recovery.c
@@ -322,32 +322,9 @@ fsck_err:
static bool journal_empty(struct list_head *journal)
{
- struct journal_replay *i;
- struct jset_entry *entry;
-
- if (list_empty(journal))
- return true;
-
- i = list_last_entry(journal, struct journal_replay, list);
-
- if (i->j.last_seq != i->j.seq)
- return false;
-
- list_for_each_entry(i, journal, list) {
- vstruct_for_each(&i->j, entry) {
- if (entry->type == BCH_JSET_ENTRY_btree_root ||
- entry->type == BCH_JSET_ENTRY_usage ||
- entry->type == BCH_JSET_ENTRY_data_usage)
- continue;
-
- if (entry->type == BCH_JSET_ENTRY_btree_keys &&
- !entry->u64s)
- continue;
- return false;
- }
- }
-
- return true;
+ return list_empty(journal) ||
+ journal_entry_empty(&list_last_entry(journal,
+ struct journal_replay, list)->j);
}
int bch2_fs_recovery(struct bch_fs *c)