diff options
Diffstat (limited to 'drivers/md/dm-raid1.c')
| -rw-r--r-- | drivers/md/dm-raid1.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c index d039de8322f..b58b7a33914 100644 --- a/drivers/md/dm-raid1.c +++ b/drivers/md/dm-raid1.c @@ -1084,6 +1084,7 @@ static int mirror_ctr(struct dm_target *ti, unsigned int argc, char **argv)  	ti->split_io = dm_rh_get_region_size(ms->rh);  	ti->num_flush_requests = 1;  	ti->num_discard_requests = 1; +	ti->discard_zeroes_data_unsupported = 1;  	ms->kmirrord_wq = alloc_workqueue("kmirrord",  					  WQ_NON_REENTRANT | WQ_MEM_RECLAIM, 0); @@ -1214,7 +1215,7 @@ static int mirror_end_io(struct dm_target *ti, struct bio *bio,  	 * We need to dec pending if this was a write.  	 */  	if (rw == WRITE) { -		if (!(bio->bi_rw & REQ_FLUSH)) +		if (!(bio->bi_rw & (REQ_FLUSH | REQ_DISCARD)))  			dm_rh_dec(ms->rh, map_context->ll);  		return error;  	}  |