diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2020-03-09 14:19:58 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2020-03-09 14:20:11 -0400 |
commit | d051feef0d3838b0ce7341b334b3da9baed116f3 (patch) | |
tree | 9ad561b74c2c983cb034f2b7e2db17a7f6de5767 | |
parent | f15091364e3973e0c1fd47ae208d9734565ff0ae (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.c | 3 | ||||
-rw-r--r-- | fs/bcachefs/io.h | 5 | ||||
-rw-r--r-- | fs/bcachefs/move.c | 3 |
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; |