diff options
author | Alex Shi <alex.shi@linaro.org> | 2017-06-30 14:26:31 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2017-06-30 14:26:31 +0800 |
commit | 78278fb152735c686cb13e1ae3bcee78fc2cd154 (patch) | |
tree | ed3f669fbb4422bf3dfaa6b20ea992c04c1eac01 /drivers/block/xen-blkback/xenbus.c | |
parent | 084eedbddaa526f53b20291ee7176be269620301 (diff) | |
parent | 92905e331aea278665c4b27fbb13c4547a8bcbb0 (diff) |
Merge tag 'v4.9.35' into linux-linaro-lsk-v4.9lsk-v4.9-17.06
This is the 4.9.35 stable release
Diffstat (limited to 'drivers/block/xen-blkback/xenbus.c')
-rw-r--r-- | drivers/block/xen-blkback/xenbus.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/block/xen-blkback/xenbus.c b/drivers/block/xen-blkback/xenbus.c index 3cc6d1d86f1e..9b69fe410c08 100644 --- a/drivers/block/xen-blkback/xenbus.c +++ b/drivers/block/xen-blkback/xenbus.c @@ -159,7 +159,7 @@ static int xen_blkif_alloc_rings(struct xen_blkif *blkif) init_waitqueue_head(&ring->shutdown_wq); ring->blkif = blkif; ring->st_print = jiffies; - xen_blkif_get(blkif); + ring->active = true; } return 0; @@ -249,6 +249,9 @@ static int xen_blkif_disconnect(struct xen_blkif *blkif) struct xen_blkif_ring *ring = &blkif->rings[r]; unsigned int i = 0; + if (!ring->active) + continue; + if (ring->xenblkd) { kthread_stop(ring->xenblkd); wake_up(&ring->shutdown_wq); @@ -296,7 +299,7 @@ static int xen_blkif_disconnect(struct xen_blkif *blkif) BUG_ON(ring->free_pages_num != 0); BUG_ON(ring->persistent_gnt_c != 0); WARN_ON(i != (XEN_BLKIF_REQS_PER_PAGE * blkif->nr_ring_pages)); - xen_blkif_put(blkif); + ring->active = false; } blkif->nr_ring_pages = 0; /* |