* <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
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);
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);