| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
- From: Ilya Dryomov <[email protected]>
- Date: Fri, 3 May 2019 17:27:03 +0200
- Subject: [PATCH] rbd: don't assert on writes to snapshots
- The check added in commit 721c7fc701c7 ("block: fail op_is_write()
- requests to read-only partitions") was lifted in commit a32e236eb93e
- ("Partially revert "block: fail op_is_write() requests to read-only
- partitions""). Basic things like user triggered writes and discards
- are still caught, but internal kernel users can submit anything. In
- particular, ext4 will attempt to write to the superblock if it detects
- errors in the filesystem, even if the filesystem is mounted read-only
- on a read-only partition.
- The assert is overkill regardless.
- Signed-off-by: Ilya Dryomov <[email protected]>
- Signed-off-by: Thomas Lamprecht <[email protected]>
- ---
- drivers/block/rbd.c | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
- diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
- index 1e92b61d0bd5..339cdd4062bb 100644
- --- a/drivers/block/rbd.c
- +++ b/drivers/block/rbd.c
- @@ -3664,8 +3664,12 @@ static void rbd_queue_workfn(struct work_struct *work)
- goto err_rq;
- }
-
- - rbd_assert(op_type == OBJ_OP_READ ||
- - rbd_dev->spec->snap_id == CEPH_NOSNAP);
- + if (op_type != OBJ_OP_READ && rbd_dev->spec->snap_id != CEPH_NOSNAP) {
- + rbd_warn(rbd_dev, "%s on read-only snapshot",
- + obj_op_name(op_type));
- + result = -EIO;
- + goto err;
- + }
-
- /*
- * Quit early if the mapped snapshot no longer exists. It's
|