summaryrefslogtreecommitdiff
path: root/libbcachefs/data_update.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/data_update.c')
-rw-r--r--libbcachefs/data_update.c8
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;