summaryrefslogtreecommitdiff
path: root/libbcachefs/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/super.c')
-rw-r--r--libbcachefs/super.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libbcachefs/super.c b/libbcachefs/super.c
index b6e449a..fd8a299 100644
--- a/libbcachefs/super.c
+++ b/libbcachefs/super.c
@@ -381,6 +381,11 @@ static int __bch2_fs_read_write(struct bch_fs *c, bool early)
unsigned i;
int ret;
+ if (test_bit(BCH_FS_INITIAL_GC_UNFIXED, &c->flags)) {
+ bch_err(c, "cannot go rw, unfixed btree errors");
+ return -EROFS;
+ }
+
if (test_bit(BCH_FS_RW, &c->flags))
return 0;
@@ -440,6 +445,7 @@ static int __bch2_fs_read_write(struct bch_fs *c, bool early)
percpu_ref_reinit(&c->writes);
set_bit(BCH_FS_RW, &c->flags);
+ set_bit(BCH_FS_WAS_RW, &c->flags);
return 0;
err:
__bch2_fs_read_only(c);