]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/btree_update_interior.c
Update bcachefs sources to fb39031ade bcachefs: bch2_sb_maybe_downgrade(), bch2_sb_up...
[bcachefs-tools-debian] / libbcachefs / btree_update_interior.c
index 5592feff79d17760dc504155b7ca39c111c5fd39..3659b2c08109b71bb09e5d7fc166b6f049e92ab2 100644 (file)
@@ -1158,6 +1158,17 @@ bch2_btree_update_start(struct btree_trans *trans, struct btree_path *path,
            bch2_err_matches(ret, ENOMEM)) {
                struct closure cl;
 
+               /*
+                * XXX: this should probably be a separate BTREE_INSERT_NONBLOCK
+                * flag
+                */
+               if (bch2_err_matches(ret, ENOSPC) &&
+                   (flags & BTREE_INSERT_JOURNAL_RECLAIM) &&
+                   watermark != BCH_WATERMARK_reclaim) {
+                       ret = -BCH_ERR_journal_reclaim_would_deadlock;
+                       goto err;
+               }
+
                closure_init_stack(&cl);
 
                do {