]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/journal_io.h
Update bcachefs sources to 7786034caa bcachefs: Fix for freespace version upgrade...
[bcachefs-tools-debian] / libbcachefs / journal_io.h
index d0a652cf93564d9c7725946d2e34e80094517091..f2001835e43e215f725331f1cc591f736a29b6ef 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _BCACHEFS_JOURNAL_IO_H
 #define _BCACHEFS_JOURNAL_IO_H
 
@@ -7,7 +8,17 @@
  */
 struct journal_replay {
        struct list_head        list;
-       struct bch_devs_list    devs;
+       struct journal_ptr {
+               u8              dev;
+               u32             bucket;
+               u32             bucket_offset;
+               u64             sector;
+       }                       ptrs[BCH_REPLICAS_MAX];
+       unsigned                nr_ptrs;
+
+       /* checksum error, but we may want to try using it anyways: */
+       bool                    bad;
+       bool                    ignore;
        /* must be last: */
        struct jset             j;
 };
@@ -34,12 +45,16 @@ static inline struct jset_entry *__jset_entry_type_next(struct jset *jset,
        for_each_jset_entry_type(entry, jset, BCH_JSET_ENTRY_btree_keys)        \
                vstruct_for_each_safe(entry, k, _n)
 
-int bch2_journal_set_seq(struct bch_fs *c, u64, u64);
-int bch2_journal_read(struct bch_fs *, struct list_head *);
-void bch2_journal_entries_free(struct list_head *);
-int bch2_journal_replay(struct bch_fs *, struct list_head *);
+int bch2_journal_entry_validate(struct bch_fs *, const char *,
+                               struct jset_entry *, unsigned, int, int);
+void bch2_journal_entry_to_text(struct printbuf *, struct bch_fs *,
+                               struct jset_entry *);
+
+void bch2_journal_ptrs_to_text(struct printbuf *, struct bch_fs *,
+                              struct journal_replay *);
+
+int bch2_journal_read(struct bch_fs *, struct list_head *, u64 *, u64 *);
 
-int bch2_journal_entry_sectors(struct journal *);
 void bch2_journal_write(struct closure *);
 
 #endif /* _BCACHEFS_JOURNAL_IO_H */