diff options
-rw-r--r-- | drivers/block/rbd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 454bf9c34882..c16f74547804 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c | |||
@@ -4023,6 +4023,7 @@ static void rbd_queue_workfn(struct work_struct *work) | |||
4023 | 4023 | ||
4024 | switch (req_op(rq)) { | 4024 | switch (req_op(rq)) { |
4025 | case REQ_OP_DISCARD: | 4025 | case REQ_OP_DISCARD: |
4026 | case REQ_OP_WRITE_ZEROES: | ||
4026 | op_type = OBJ_OP_DISCARD; | 4027 | op_type = OBJ_OP_DISCARD; |
4027 | break; | 4028 | break; |
4028 | case REQ_OP_WRITE: | 4029 | case REQ_OP_WRITE: |
@@ -4420,6 +4421,7 @@ static int rbd_init_disk(struct rbd_device *rbd_dev) | |||
4420 | q->limits.discard_granularity = segment_size; | 4421 | q->limits.discard_granularity = segment_size; |
4421 | q->limits.discard_alignment = segment_size; | 4422 | q->limits.discard_alignment = segment_size; |
4422 | blk_queue_max_discard_sectors(q, segment_size / SECTOR_SIZE); | 4423 | blk_queue_max_discard_sectors(q, segment_size / SECTOR_SIZE); |
4424 | blk_queue_max_write_zeroes_sectors(q, segment_size / SECTOR_SIZE); | ||
4423 | 4425 | ||
4424 | if (!ceph_test_opt(rbd_dev->rbd_client->client, NOCRC)) | 4426 | if (!ceph_test_opt(rbd_dev->rbd_client->client, NOCRC)) |
4425 | q->backing_dev_info->capabilities |= BDI_CAP_STABLE_WRITES; | 4427 | q->backing_dev_info->capabilities |= BDI_CAP_STABLE_WRITES; |