diff --git a/core/modules/image/image.api.php b/core/modules/image/image.api.php
index cb56a76..08a1249 100644
--- a/core/modules/image/image.api.php
+++ b/core/modules/image/image.api.php
@@ -32,10 +32,18 @@ function hook_image_effect_info_alter(&$effects) {
  *
  * @param \Drupal\image\ImageStyleInterface $style
  *   The image style object that is being flushed.
+ * @param string $path
+ *   (optional) The path that is being flushed.
  */
-function hook_image_style_flush($style) {
-  // Empty cached data that contains information about the style.
-  \Drupal::cache('mymodule')->deleteAll();
+function hook_image_style_flush($style, $path = NULL) {
+  if (isset($path)) {
+    // Empty cached data that contains information about the style.
+    \Drupal::cache('mymodule')->delete($path);
+  }
+  else {
+    // Empty cached data that contains information about the style.
+    \Drupal::cache('mymodule')->deleteAll();
+  }
 }
 
 /**
diff --git a/core/modules/image/src/Entity/ImageStyle.php b/core/modules/image/src/Entity/ImageStyle.php
index 7314435..37c1849 100644
--- a/core/modules/image/src/Entity/ImageStyle.php
+++ b/core/modules/image/src/Entity/ImageStyle.php
@@ -234,6 +234,11 @@ public function flush($path = NULL) {
       if (file_exists($derivative_uri)) {
         file_unmanaged_delete($derivative_uri);
       }
+
+      // Let other modules update as necessary on flush.
+      $module_handler = \Drupal::moduleHandler();
+      $module_handler->invokeAll('image_style_flush', array($this, $path));
+
       return $this;
     }
 
