]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/btree_gc.h
Move c_src dirs back to toplevel
[bcachefs-tools-debian] / libbcachefs / btree_gc.h
index 8de54005e4eaf8f299c5318b8dbd3ef7c6ba0df2..607575f83a00232b67d026a0423f9d486f044f2e 100644 (file)
@@ -2,8 +2,10 @@
 #ifndef _BCACHEFS_BTREE_GC_H
 #define _BCACHEFS_BTREE_GC_H
 
+#include "bkey.h"
 #include "btree_types.h"
 
+int bch2_check_topology(struct bch_fs *);
 int bch2_gc(struct bch_fs *, bool, bool);
 int bch2_gc_gens(struct bch_fs *);
 void bch2_gc_thread_stop(struct bch_fs *);
@@ -50,7 +52,7 @@ static inline int gc_pos_cmp(struct gc_pos l, struct gc_pos r)
 static inline enum gc_phase btree_id_to_gc_phase(enum btree_id id)
 {
        switch (id) {
-#define x(name, v) case BTREE_ID_##name: return GC_PHASE_BTREE_##name;
+#define x(name, v, ...) case BTREE_ID_##name: return GC_PHASE_BTREE_##name;
        BCH_BTREE_IDS()
 #undef x
        default:
@@ -105,7 +107,8 @@ static inline bool gc_visited(struct bch_fs *c, struct gc_pos pos)
 static inline void bch2_do_gc_gens(struct bch_fs *c)
 {
        atomic_inc(&c->kick_gc);
-       wake_up_process(c->gc_thread);
+       if (c->gc_thread)
+               wake_up_process(c->gc_thread);
 }
 
 #endif /* _BCACHEFS_BTREE_GC_H */