]> xenbits.xensource.com Git - people/dstodden/blktap.git/commitdiff
CA-51988/XC-3264: Don't (re-)issue requests while paused.
authorJake Wires <Jake.Wires@citrix.com>
Tue, 22 Feb 2011 01:30:06 +0000 (17:30 -0800)
committerJake Wires <Jake.Wires@citrix.com>
Tue, 22 Feb 2011 01:30:06 +0000 (17:30 -0800)
Picks missing quiesced-state related bits only from XC blktap.git
32923215. Issue was then duplicated through 595:8651e424a229
(vbd_recheck_state), hence the second hunk.

Signed-off-by: Daniel Stodden <daniel.stodden@citrix.com>
From 3292321524cc5797bd0e01b9d36e71ed4a54cbbf Mon Sep 17 00:00:00 2001
Date: Tue, 10 Aug 2010 16:41:38 -0700
* don't issue requests while paused
* don't timeout requests while paused
* ensure progress on resume
Signed-off-by: Jake Wires <Jake.Wires@citrix.com>
---
 drivers/tapdisk-vbd.c |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

drivers/tapdisk-vbd.c

index f64b97e0fd8895de3bb9b4cc34cab29eb89c3c70..b1ec21ba7d11e866bb5ae2d598ddb273c5b8d4b9 100644 (file)
@@ -1269,6 +1269,10 @@ tapdisk_vbd_recheck_state(td_vbd_t *vbd)
        if (list_empty(&vbd->new_requests))
                return 0;
 
+       if (td_flag_test(vbd->state, TD_VBD_QUIESCED) ||
+           td_flag_test(vbd->state, TD_VBD_QUIESCE_REQUESTED))
+               return 0;
+
        tapdisk_vbd_issue_new_requests(vbd);
 
        return 1;
@@ -1300,6 +1304,10 @@ tapdisk_vbd_issue_requests(td_vbd_t *vbd)
        if (td_flag_test(vbd->state, TD_VBD_DEAD))
                return tapdisk_vbd_kill_requests(vbd);
 
+       if (td_flag_test(vbd->state, TD_VBD_QUIESCED) ||
+           td_flag_test(vbd->state, TD_VBD_QUIESCE_REQUESTED))
+               return -EAGAIN;
+
        err = tapdisk_vbd_reissue_failed_requests(vbd);
        if (err)
                return err;