diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-07-15 23:30:44 +0300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-07-19 01:33:30 +0300 |
commit | f12410bb7dddc64b58cbd6fca224b82ff40c5807 (patch) | |
tree | 3009b6f0e1f979fc4c1c86a08d66e777f8d49dce /fs/bcachefs/journal_reclaim.c | |
parent | ee1b8dc17ac367f3fbea18fee4f7825eb11eb757 (diff) | |
download | linux-f12410bb7dddc64b58cbd6fca224b82ff40c5807.tar.xz |
bcachefs: Add an error message for insufficient rw journal devs
This causes us to go read-only - need an error message saying why.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/journal_reclaim.c')
-rw-r--r-- | fs/bcachefs/journal_reclaim.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/bcachefs/journal_reclaim.c b/fs/bcachefs/journal_reclaim.c index 79be0eaddfa0..d8a630742887 100644 --- a/fs/bcachefs/journal_reclaim.c +++ b/fs/bcachefs/journal_reclaim.c @@ -205,6 +205,17 @@ void bch2_journal_space_available(struct journal *j) j->can_discard = can_discard; if (nr_online < metadata_replicas_required(c)) { + struct printbuf buf = PRINTBUF; + prt_printf(&buf, "insufficient writeable journal devices available: have %u, need %u\n" + "rw journal devs:", nr_online, metadata_replicas_required(c)); + + rcu_read_lock(); + for_each_member_device_rcu(c, ca, &c->rw_devs[BCH_DATA_journal]) + prt_printf(&buf, " %s", ca->name); + rcu_read_unlock(); + + bch_err(c, "%s", buf.buf); + printbuf_exit(&buf); ret = JOURNAL_ERR_insufficient_devices; goto out; } |