diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
index a76eda50ad48bf2f227b669458bb8a390a508a7f..1d45f7aca9cb5b26982fb39f164f76a8038fdc5e 100644
--- a/drivers/md/dm-writecache.c
+++ b/drivers/md/dm-writecache.c
@@ -811,6 +811,8 @@ static void writecache_discard(struct dm_writecache *wc, sector_t start, sector_
 				writecache_wait_for_ios(wc, WRITE);
 				discarded_something = true;
 			}
+			if (!writecache_entry_is_committed(wc, e))
+				wc->uncommitted_blocks--;
 			writecache_free_entry(wc, e);
 		}