summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2020-03-09 14:19:58 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2020-03-09 14:20:11 -0400
commitd051feef0d3838b0ce7341b334b3da9baed116f3 (patch)
tree9ad561b74c2c983cb034f2b7e2db17a7f6de5767
parentf15091364e3973e0c1fd47ae208d9734565ff0ae (diff)
bcachefs: Don't log errors that are expected during shutdown
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r--fs/bcachefs/io.c3
-rw-r--r--fs/bcachefs/io.h5
-rw-r--r--fs/bcachefs/move.c3
3 files changed, 7 insertions, 4 deletions
diff --git a/fs/bcachefs/io.c b/fs/bcachefs/io.c
index 7cc26af16a1b..7312ab2a1435 100644
--- a/fs/bcachefs/io.c
+++ b/fs/bcachefs/io.c
@@ -1221,7 +1221,8 @@ void bch2_write(struct closure *cl)
if (c->opts.nochanges ||
!percpu_ref_tryget(&c->writes)) {
- __bcache_io_error(c, "read only");
+ if (!(op->flags & BCH_WRITE_FROM_INTERNAL))
+ __bcache_io_error(c, "read only");
op->error = -EROFS;
goto err;
}
diff --git a/fs/bcachefs/io.h b/fs/bcachefs/io.h
index 37f7fa6102fc..e45dcf9635ae 100644
--- a/fs/bcachefs/io.h
+++ b/fs/bcachefs/io.h
@@ -31,10 +31,11 @@ enum bch_write_flags {
BCH_WRITE_ONLY_SPECIFIED_DEVS = (1 << 6),
BCH_WRITE_NOPUT_RESERVATION = (1 << 7),
BCH_WRITE_WROTE_DATA_INLINE = (1 << 8),
+ BCH_WRITE_FROM_INTERNAL = (1 << 9),
/* Internal: */
- BCH_WRITE_JOURNAL_SEQ_PTR = (1 << 9),
- BCH_WRITE_SKIP_CLOSURE_PUT = (1 << 10),
+ BCH_WRITE_JOURNAL_SEQ_PTR = (1 << 10),
+ BCH_WRITE_SKIP_CLOSURE_PUT = (1 << 11),
};
static inline u64 *op_journal_seq(struct bch_write_op *op)
diff --git a/fs/bcachefs/move.c b/fs/bcachefs/move.c
index ecc74ebe0579..4afda95f4017 100644
--- a/fs/bcachefs/move.c
+++ b/fs/bcachefs/move.c
@@ -243,7 +243,8 @@ int bch2_migrate_write_init(struct bch_fs *c, struct migrate_write *m,
m->op.flags |= BCH_WRITE_ONLY_SPECIFIED_DEVS|
BCH_WRITE_PAGES_STABLE|
BCH_WRITE_PAGES_OWNED|
- BCH_WRITE_DATA_ENCODED;
+ BCH_WRITE_DATA_ENCODED|
+ BCH_WRITE_FROM_INTERNAL;
m->op.nr_replicas = 1;
m->op.nr_replicas_required = 1;