diff --git a/drivers/md/dm-target.c b/drivers/md/dm-target.c
index 11dea11dc0b649e16594e071163f79647c274293..8da366cf381cdbd2f7d1b830bd7ecbe1191a5df1 100644
--- a/drivers/md/dm-target.c
+++ b/drivers/md/dm-target.c
@@ -113,6 +113,11 @@ void dm_unregister_target(struct target_type *tt)
  */
 static int io_err_ctr(struct dm_target *tt, unsigned int argc, char **args)
 {
+	/*
+	 * Return error for discards instead of -EOPNOTSUPP
+	 */
+	tt->num_discard_requests = 1;
+
 	return 0;
 }