qemu/hw/block/xen_disk.c
/* walk finished list, send outstanding responses, free requests */
walk finished list, send outstanding responses, free requests
walk finished list send outstanding responses free requests
static void blk_send_response_all(struct XenBlkDev *blkdev)
{
    struct ioreq *ioreq;
    int send_notify = 0;
    while (!QLIST_EMPTY(&blkdev->finished)) {
        ioreq = QLIST_FIRST(&blkdev->finished);
        send_notify += blk_send_response_one(ioreq);
        ioreq_release(ioreq, true);
    }
    if (send_notify) {
        xen_pv_send_notify(&blkdev->xendev);
    }
}
static void blk_send_response_all ( struct XenBlkDev * blkdev ) { struct ioreq * ioreq ; int send_notify = 0 ; while ( ! QLIST_EMPTY ( & blkdev -> finished ) ) { ioreq = QLIST_FIRST ( & blkdev -> finished ) ; send_notify += blk_send_response_one ( ioreq ) ; ioreq_release ( ioreq , true ) ; } if ( send_notify ) { xen_pv_send_notify ( & blkdev -> xendev ) ; } }
walk finished list, send outstanding responses, free requests
walk finished list send outstanding responses free requests