diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 4e76edddd2..af5a97eac5 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -1197,8 +1197,7 @@ function node_access_rebuild($batch_mode = FALSE) {
         // To preserve database integrity, only write grants if the node
         // loads successfully.
         if (!empty($node)) {
-          $grants = $access_control_handler->acquireGrants($node);
-          \Drupal::service('node.grant_storage')->write($node, $grants);
+          $access_control_handler->acquireAndWriteGrants($node);
         }
       }
     }
@@ -1254,9 +1253,8 @@ function _node_access_rebuild_batch_operation(&$context) {
     // loads successfully.
     if (!empty($node)) {
       /** @var \Drupal\node\NodeAccessControlHandlerInterface $access_control_handler */
-      $access_control_handler = \Drupal::entityManager()->getAccessControlHandler('node');
-      $grants = $access_control_handler->acquireGrants($node);
-      \Drupal::service('node.grant_storage')->write($node, $grants);
+      $access_control_handler = \Drupal::entityTypeManager()->getAccessControlHandler('node');
+      $access_control_handler->acquireAndWriteGrants($node);
     }
     $context['sandbox']['progress']++;
     $context['sandbox']['current_node'] = $nid;
diff --git a/core/modules/node/src/Entity/Node.php b/core/modules/node/src/Entity/Node.php
index e5544a2d85..90edd9b02a 100644
--- a/core/modules/node/src/Entity/Node.php
+++ b/core/modules/node/src/Entity/Node.php
@@ -139,9 +139,8 @@ public function postSave(EntityStorageInterface $storage, $update = TRUE) {
     // is new.
     if ($this->isDefaultRevision()) {
       /** @var \Drupal\node\NodeAccessControlHandlerInterface $access_control_handler */
-      $access_control_handler = \Drupal::entityManager()->getAccessControlHandler('node');
-      $grants = $access_control_handler->acquireGrants($this);
-      \Drupal::service('node.grant_storage')->write($this, $grants, NULL, $update);
+      $access_control_handler = \Drupal::entityTypeManager()->getAccessControlHandler('node');
+      $access_control_handler->acquireAndWriteGrants($this, $update);
     }
 
     // Reindex the node when it is updated. The node is automatically indexed
diff --git a/core/modules/node/src/NodeAccessControlHandler.php b/core/modules/node/src/NodeAccessControlHandler.php
index a8a0bc6241..e7bb113705 100644
--- a/core/modules/node/src/NodeAccessControlHandler.php
+++ b/core/modules/node/src/NodeAccessControlHandler.php
@@ -160,7 +160,7 @@ public function acquireGrants(NodeInterface $node) {
   /**
    * {@inheritdoc}
    */
-  public function writeGrants(NodeInterface $node, $delete = TRUE) {
+  public function acquireAndWriteGrants(NodeInterface $node, $delete = TRUE) {
     $grants = $this->acquireGrants($node);
     $this->grantStorage->write($node, $grants, NULL, $delete);
   }
@@ -168,6 +168,13 @@ public function writeGrants(NodeInterface $node, $delete = TRUE) {
   /**
    * {@inheritdoc}
    */
+  public function writeGrants(NodeInterface $node, $delete = TRUE) {
+    $this->acquireAndWriteGrants($node, $delete);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function writeDefaultGrant() {
     $this->grantStorage->writeDefault();
   }
diff --git a/core/modules/node/src/NodeAccessControlHandlerInterface.php b/core/modules/node/src/NodeAccessControlHandlerInterface.php
index 7d407c1f16..3c28b0c267 100644
--- a/core/modules/node/src/NodeAccessControlHandlerInterface.php
+++ b/core/modules/node/src/NodeAccessControlHandlerInterface.php
@@ -29,23 +29,32 @@
   public function acquireGrants(NodeInterface $node);
 
   /**
-   * Writes a list of grants to the database, deleting any previously saved ones.
+   * Gets and writes the grants of a node to the database.
    *
-   * Modules that use node access can use this function when doing mass updates
-   * due to widespread permission changes.
+   * @param \Drupal\node\NodeInterface $node
+   *   The node whose grants are being written.
+   * @param $delete
+   *   (optional) If FALSE, does not delete records. This is only for
+   *   optimization purposes, and assumes the caller has already performed
+   *   a mass delete of some form. Defaults to TRUE.
+   */
+  public function acquireAndWriteGrants(NodeInterface $node, $delete = TRUE);
+
+  /**
+   * Gets and writes the grants of a node to the database.
    *
-   * Note: Don't call this function directly from a contributed module. Call
-   * \Drupal\node\NodeAccessControlHandlerInterface::acquireGrants() instead.
+   * Compatibility wrapper for acquireAndWriteGrants().
    *
    * @param \Drupal\node\NodeInterface $node
    *   The node whose grants are being written.
    * @param $delete
-   *   (optional) If false, does not delete records. This is only for optimization
-   *   purposes, and assumes the caller has already performed a mass delete of
-   *   some form. Defaults to TRUE.
+   *   (optional) If FALSE, does not delete records. This is only for
+   *   optimization purposes, and assumes the caller has already performed
+   *   a mass delete of some form. Defaults to TRUE.
    *
    * @deprecated in Drupal 8.x, will be removed before Drupal 9.0.
-   *   Use \Drupal\node\NodeAccessControlHandlerInterface::acquireGrants().
+   *   Use
+   *   \Drupal\node\NodeAccessControlHandlerInterface::acquireAndWriteGrants().
    */
   public function writeGrants(NodeInterface $node, $delete = TRUE);
 
