bcachefs: Suppress -EROFS messages when shutting down
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 12 Oct 2022 20:11:31 +0000 (16:11 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:47 +0000 (17:09 -0400)
This isn't actually an error condition, this just indicates a normal
shutdown - no reason for these to be in the log.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_gc.c
fs/bcachefs/io.c
fs/bcachefs/movinggc.c

index f5b46f382340aba2052c19e840192e0fd8bc9a64..2defa811f48fb84c92e33d3557a9a84fee72647f 100644 (file)
@@ -1976,10 +1976,10 @@ int bch2_gc_gens(struct bch_fs *c)
                                        NULL, NULL,
                                        BTREE_INSERT_NOFAIL,
                                gc_btree_gens_key(&trans, &iter, k));
-                       if (ret) {
+                       if (ret && ret != -EROFS)
                                bch_err(c, "error recalculating oldest_gen: %s", bch2_err_str(ret));
+                       if (ret)
                                goto err;
-                       }
                }
 
        ret = for_each_btree_key_commit(&trans, iter, BTREE_ID_alloc,
@@ -1989,10 +1989,10 @@ int bch2_gc_gens(struct bch_fs *c)
                        NULL, NULL,
                        BTREE_INSERT_NOFAIL,
                bch2_alloc_write_oldest_gen(&trans, &iter, k));
-       if (ret) {
+       if (ret && ret != -EROFS)
                bch_err(c, "error writing oldest_gen: %s", bch2_err_str(ret));
+       if (ret)
                goto err;
-       }
 
        c->gc_gens_btree        = 0;
        c->gc_gens_pos          = POS_MIN;
index 491fad4dfb28e0fea687735434c11e5e9e9ba33d..27265ba35fac4e9188a624cc2afd068b3e7662e7 100644 (file)
@@ -675,15 +675,17 @@ static void __bch2_write_index(struct bch_write_op *op)
 
                op->written += sectors_start - keylist_sectors(keys);
 
-               if (ret) {
+               if (ret && !bch2_err_matches(ret, EROFS)) {
                        struct bkey_i *k = bch2_keylist_front(&op->insert_keys);
 
                        bch_err_inum_offset_ratelimited(c,
                                k->k.p.inode, k->k.p.offset << 9,
                                "write error while doing btree update: %s",
                                bch2_err_str(ret));
-                       goto err;
                }
+
+               if (ret)
+                       goto err;
        }
 out:
        /* If some a bucket wasn't written, we can't erasure code it: */
index 09f4303de1f62a82bb8ebd4baaca7e36c804aca1..66f18f711d533c19ffc342f41f874c1c68f53274 100644 (file)
@@ -319,7 +319,7 @@ static int bch2_copygc(struct bch_fs *c)
                             writepoint_ptr(&c->copygc_write_point),
                             false,
                             copygc_pred, NULL);
-       if (ret < 0)
+       if (ret < 0 && ret != -EROFS)
                bch_err(c, "error from bch2_move_data() in copygc: %s", bch2_err_str(ret));
        if (ret)
                return ret;