bch2_btree_update_free(as, trans);
        if (!bch2_err_matches(ret, ENOSPC) &&
            !bch2_err_matches(ret, EROFS) &&
-           ret != -BCH_ERR_journal_reclaim_would_deadlock)
+           ret != -BCH_ERR_journal_reclaim_would_deadlock &&
+           ret != -BCH_ERR_journal_shutdown)
                bch_err_fn_ratelimited(c, ret);
        return ERR_PTR(ret);
 }
 
        int ret = bch2_trans_do(c, bch2_btree_node_rewrite_key(trans,
                                                a->btree_id, a->level, a->key.k, 0));
-       if (ret != -ENOENT)
+       if (ret != -ENOENT &&
+           !bch2_err_matches(ret, EROFS) &&
+           ret != -BCH_ERR_journal_shutdown)
                bch_err_fn_ratelimited(c, ret);
 
        spin_lock(&c->btree_node_rewrites_lock);
 
                               : j->noflush_write_time, j->write_start_time);
 
        if (!w->devs_written.nr) {
-               bch_err(c, "unable to write journal to sufficient devices");
+               if (!bch2_journal_error(j))
+                       bch_err(c, "unable to write journal to sufficient devices");
                err = -BCH_ERR_journal_write_err;
        } else {
                bch2_devlist_to_replicas(&replicas.e, BCH_DATA_journal,