]> xenbits.xensource.com Git - xenclient/kernel.git/commitdiff
imported patch CA-24784-resource-leak CA-24267-blkback-unpause
authort_jeang <devnull@localhost>
Tue, 6 Jan 2009 12:06:01 +0000 (12:06 +0000)
committert_jeang <devnull@localhost>
Tue, 6 Jan 2009 12:06:01 +0000 (12:06 +0000)
drivers/xen/blkback/blkback.c
drivers/xen/blktap/blktap.c

index 970afe20757770887cae4c6d650bcb17b3f3e7d5..c326d88ec75e5886a1af4e9e1f36a347aad0389b 100644 (file)
@@ -423,14 +423,14 @@ static int do_block_io_op(blkif_t *blkif)
                if (RING_REQUEST_CONS_OVERFLOW(&blk_rings->common, rc))
                        break;
 
-               pending_req = alloc_req();
-               if (NULL == pending_req) {
-                       blkif->st_oo_req++;
+               if (blkif->remove_requested) {
                        more_to_do = 1;
                        break;
                }
 
-               if (blkif->remove_requested) {
+               pending_req = alloc_req();
+               if (NULL == pending_req) {
+                       blkif->st_oo_req++;
                        more_to_do = 1;
                        break;
                }
index 87cb9df9df05cb654f449096b0fb1e90b11ae9ee..72c4a7a3e886783b993aa22ceee476148c54fbb4 100644 (file)
@@ -1129,6 +1129,11 @@ static int do_block_io_op(tap_blkif_t *info)
                        break;
                }
 
+               if (info->remove_requested) {
+                       more_to_do = 1;
+                       break;
+               }
+
                usr_idx = GET_NEXT_REQ(info->idx_map);
                if (usr_idx == INVALID_REQ)
                        break;
@@ -1140,11 +1145,6 @@ static int do_block_io_op(tap_blkif_t *info)
                        break;
                }
 
-               if (info->remove_requested) {
-                       more_to_do = 1;
-                       break;
-               }
-
                switch (blkif->blk_protocol) {
                case BLKIF_PROTOCOL_NATIVE:
                        memcpy(&req, RING_GET_REQUEST(&blk_rings->native, rc),