summaryrefslogtreecommitdiffstats
path: root/drivers/block/rbd.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2017-06-04 15:21:52 +0200
committerThomas Gleixner <tglx@linutronix.de>2017-06-04 15:21:52 +0200
commit978267b6430c07d62cb38f83e058a3132c52eca1 (patch)
tree1a744c8230cd5a72adc363ca93458a748c664abe /drivers/block/rbd.c
parentsignal: Remove non-uapi <asm/siginfo.h> (diff)
parentalarmtimer: Rate limit periodic intervals (diff)
downloadlinux-978267b6430c07d62cb38f83e058a3132c52eca1.tar.xz
linux-978267b6430c07d62cb38f83e058a3132c52eca1.zip
Merge branch 'timers/urgent' into WIP.timers
Pick up urgent fixes to avoid conflicts.
Diffstat (limited to 'drivers/block/rbd.c')
-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)
switch (req_op(rq)) {
case REQ_OP_DISCARD:
+ case REQ_OP_WRITE_ZEROES:
op_type = OBJ_OP_DISCARD;
break;
case REQ_OP_WRITE:
@@ -4420,6 +4421,7 @@ static int rbd_init_disk(struct rbd_device *rbd_dev)
q->limits.discard_granularity = segment_size;
q->limits.discard_alignment = segment_size;
blk_queue_max_discard_sectors(q, segment_size / SECTOR_SIZE);
+ blk_queue_max_write_zeroes_sectors(q, segment_size / SECTOR_SIZE);
if (!ceph_test_opt(rbd_dev->rbd_client->client, NOCRC))
q->backing_dev_info->capabilities |= BDI_CAP_STABLE_WRITES;