diff options
Diffstat (limited to 'libbcachefs/data_update.c')
-rw-r--r-- | libbcachefs/data_update.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libbcachefs/data_update.c b/libbcachefs/data_update.c index a314d70c..2c997fdd 100644 --- a/libbcachefs/data_update.c +++ b/libbcachefs/data_update.c @@ -812,10 +812,14 @@ static int can_write_extent(struct bch_fs *c, struct data_update *m) break; } - if (!nr_replicas) { + if (nr_replicas < m->op.nr_replicas) { + prt_printf(&buf, "\nnr_replicas %u < %u", nr_replicas, m->op.nr_replicas); trace_data_update_done_no_rw_devs(c, buf.buf); - return bch_err_throw(c, data_update_done_no_rw_devs); } + + if (!nr_replicas) + return bch_err_throw(c, data_update_done_no_rw_devs); + if (nr_replicas < m->op.nr_replicas) return bch_err_throw(c, insufficient_devices); return 0; |