aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/block/rbd.c2
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;