librbd:
  copy-on-read:
    after we've read from the child and close it once, make sure copy-on-read
    worked by using rados_list() and checking for objects named after the
    child's block_name_prefix reported by rbd_stat().
librbd:
  copy-on-read:
    Flush the copy-up queue in snap_set as well when transitioning.
librbd:
   copy-on-read: No CoR for snapshot reads.
librbd:
  copy-on-read:
    move m_snaps from AbstractWrite to AioRequst, and initialize m_snaps in
    AioRequest() to avoid duplicating code for both AioRead and AbstractWrite.
librbd:
  copy-on-read: refactoring COR on read path:
  1). If there is a valid buffer in copyup queue, extract content directly;
  2). If there is no copyup request for the oid, issue copyup request;
  3). Otherwise, forward to parent to read content.
librbd:
  copy-on-read: Use RAII style for large block for copyup_queue_lock.
librbd:
  copy-on-read:
   pass object_no as extra context to allow "rbd_copyup_cb" to perform direct
   lookup.