]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/librbd/image/CloseRequest.h
update sources to v12.1.0
[ceph.git] / ceph / src / librbd / image / CloseRequest.h
index c5cf2e1735e34c2dd498983dfd01aa47b2f5a7d6..812e91d723e18597df72a90ad285e7193489046f 100644 (file)
@@ -30,19 +30,21 @@ private:
    * <start>
    *    |
    *    v
-   * SHUT_DOWN_UPDATE_WATCHERS
+   * BLOCK_IMAGE_WATCHER (skip if R/O)
    *    |
    *    v
-   * UNREGISTER_IMAGE_WATCHER
+   * SHUT_DOWN_UPDATE_WATCHERS
    *    |
    *    v
    * SHUT_DOWN_AIO_WORK_QUEUE . . .
-   *    |                         .
-   *    v                         .
-   * SHUT_DOWN_EXCLUSIVE_LOCK     . (exclusive lock
-   *    |                         .  disabled)
+   *    |                         . (exclusive lock disabled)
    *    v                         v
-   * FLUSH  < . . . . . . . . . . .
+   * SHUT_DOWN_EXCLUSIVE_LOCK   FLUSH
+   *    |                         .
+   *    |     . . . . . . . . . . .
+   *    |     .
+   *    v     v
+   * UNREGISTER_IMAGE_WATCHER (skip if R/O)
    *    |
    *    v
    * FLUSH_READAHEAD
@@ -74,12 +76,12 @@ private:
 
   decltype(m_image_ctx->exclusive_lock) m_exclusive_lock;
 
+  void send_block_image_watcher();
+  void handle_block_image_watcher(int r);
+
   void send_shut_down_update_watchers();
   void handle_shut_down_update_watchers(int r);
 
-  void send_unregister_image_watcher();
-  void handle_unregister_image_watcher(int r);
-
   void send_shut_down_io_queue();
   void handle_shut_down_io_queue(int r);
 
@@ -89,6 +91,9 @@ private:
   void send_flush();
   void handle_flush(int r);
 
+  void send_unregister_image_watcher();
+  void handle_unregister_image_watcher(int r);
+
   void send_flush_readahead();
   void handle_flush_readahead(int r);