From: Kent Overstreet Date: Mon, 3 Aug 2020 17:58:36 +0000 (-0400) Subject: bcachefs: Don't disallow btree writes to RO devices X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=768b42a7eb91b556cfe7c467c0e7337602eb6f29;p=linux.git bcachefs: Don't disallow btree writes to RO devices There's an inherent race with setting devices RO when they have dirty btree nodes on them. We already check if a btree node is on an RO device before we dirty it, so this patch just allows those writes so that we don't have errors forcing the entire filesystem read only when trying to remove a device. Signed-off-by: Kent Overstreet Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/io.c b/fs/bcachefs/io.c index d9e35329f7078..0f4c5c3c408c7 100644 --- a/fs/bcachefs/io.c +++ b/fs/bcachefs/io.c @@ -481,7 +481,8 @@ void bch2_submit_wbio_replicas(struct bch_write_bio *wbio, struct bch_fs *c, n->c = c; n->dev = ptr->dev; - n->have_ioref = bch2_dev_get_ioref(ca, WRITE); + n->have_ioref = bch2_dev_get_ioref(ca, + type == BCH_DATA_btree ? READ : WRITE); n->submit_time = local_clock(); n->bio.bi_iter.bi_sector = ptr->offset;