diff options
Diffstat (limited to 'drivers/block/xen-blkfront.c')
| -rw-r--r-- | drivers/block/xen-blkfront.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index 8dcfb54f1603..efe1b4761735 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c | |||
| @@ -162,7 +162,7 @@ static DEFINE_SPINLOCK(minor_lock); | |||
| 162 | #define DEV_NAME "xvd" /* name in /dev */ | 162 | #define DEV_NAME "xvd" /* name in /dev */ |
| 163 | 163 | ||
| 164 | #define SEGS_PER_INDIRECT_FRAME \ | 164 | #define SEGS_PER_INDIRECT_FRAME \ |
| 165 | (PAGE_SIZE/sizeof(struct blkif_request_segment_aligned)) | 165 | (PAGE_SIZE/sizeof(struct blkif_request_segment)) |
| 166 | #define INDIRECT_GREFS(_segs) \ | 166 | #define INDIRECT_GREFS(_segs) \ |
| 167 | ((_segs + SEGS_PER_INDIRECT_FRAME - 1)/SEGS_PER_INDIRECT_FRAME) | 167 | ((_segs + SEGS_PER_INDIRECT_FRAME - 1)/SEGS_PER_INDIRECT_FRAME) |
| 168 | 168 | ||
| @@ -393,7 +393,7 @@ static int blkif_queue_request(struct request *req) | |||
| 393 | unsigned long id; | 393 | unsigned long id; |
| 394 | unsigned int fsect, lsect; | 394 | unsigned int fsect, lsect; |
| 395 | int i, ref, n; | 395 | int i, ref, n; |
| 396 | struct blkif_request_segment_aligned *segments = NULL; | 396 | struct blkif_request_segment *segments = NULL; |
| 397 | 397 | ||
| 398 | /* | 398 | /* |
| 399 | * Used to store if we are able to queue the request by just using | 399 | * Used to store if we are able to queue the request by just using |
| @@ -550,7 +550,7 @@ static int blkif_queue_request(struct request *req) | |||
| 550 | } else { | 550 | } else { |
| 551 | n = i % SEGS_PER_INDIRECT_FRAME; | 551 | n = i % SEGS_PER_INDIRECT_FRAME; |
| 552 | segments[n] = | 552 | segments[n] = |
| 553 | (struct blkif_request_segment_aligned) { | 553 | (struct blkif_request_segment) { |
| 554 | .gref = ref, | 554 | .gref = ref, |
| 555 | .first_sect = fsect, | 555 | .first_sect = fsect, |
| 556 | .last_sect = lsect }; | 556 | .last_sect = lsect }; |
| @@ -1904,13 +1904,16 @@ static void blkback_changed(struct xenbus_device *dev, | |||
| 1904 | case XenbusStateReconfiguring: | 1904 | case XenbusStateReconfiguring: |
| 1905 | case XenbusStateReconfigured: | 1905 | case XenbusStateReconfigured: |
| 1906 | case XenbusStateUnknown: | 1906 | case XenbusStateUnknown: |
| 1907 | case XenbusStateClosed: | ||
| 1908 | break; | 1907 | break; |
| 1909 | 1908 | ||
| 1910 | case XenbusStateConnected: | 1909 | case XenbusStateConnected: |
| 1911 | blkfront_connect(info); | 1910 | blkfront_connect(info); |
| 1912 | break; | 1911 | break; |
| 1913 | 1912 | ||
| 1913 | case XenbusStateClosed: | ||
| 1914 | if (dev->state == XenbusStateClosed) | ||
| 1915 | break; | ||
| 1916 | /* Missed the backend's Closing state -- fallthrough */ | ||
| 1914 | case XenbusStateClosing: | 1917 | case XenbusStateClosing: |
| 1915 | blkfront_closing(info); | 1918 | blkfront_closing(info); |
| 1916 | break; | 1919 | break; |
