diff options
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/xen-blkfront.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index 4497ff84f64a..dfe61afe676a 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c | |||
@@ -88,6 +88,7 @@ struct blkfront_info | |||
88 | struct blk_shadow shadow[BLK_RING_SIZE]; | 88 | struct blk_shadow shadow[BLK_RING_SIZE]; |
89 | unsigned long shadow_free; | 89 | unsigned long shadow_free; |
90 | int feature_barrier; | 90 | int feature_barrier; |
91 | int is_ready; | ||
91 | 92 | ||
92 | /** | 93 | /** |
93 | * The number of people holding this device open. We won't allow a | 94 | * The number of people holding this device open. We won't allow a |
@@ -839,6 +840,8 @@ static void blkfront_connect(struct blkfront_info *info) | |||
839 | spin_unlock_irq(&blkif_io_lock); | 840 | spin_unlock_irq(&blkif_io_lock); |
840 | 841 | ||
841 | add_disk(info->gd); | 842 | add_disk(info->gd); |
843 | |||
844 | info->is_ready = 1; | ||
842 | } | 845 | } |
843 | 846 | ||
844 | /** | 847 | /** |
@@ -931,6 +934,13 @@ static int blkfront_remove(struct xenbus_device *dev) | |||
931 | return 0; | 934 | return 0; |
932 | } | 935 | } |
933 | 936 | ||
937 | static int blkfront_is_ready(struct xenbus_device *dev) | ||
938 | { | ||
939 | struct blkfront_info *info = dev->dev.driver_data; | ||
940 | |||
941 | return info->is_ready; | ||
942 | } | ||
943 | |||
934 | static int blkif_open(struct inode *inode, struct file *filep) | 944 | static int blkif_open(struct inode *inode, struct file *filep) |
935 | { | 945 | { |
936 | struct blkfront_info *info = inode->i_bdev->bd_disk->private_data; | 946 | struct blkfront_info *info = inode->i_bdev->bd_disk->private_data; |
@@ -977,6 +987,7 @@ static struct xenbus_driver blkfront = { | |||
977 | .remove = blkfront_remove, | 987 | .remove = blkfront_remove, |
978 | .resume = blkfront_resume, | 988 | .resume = blkfront_resume, |
979 | .otherend_changed = backend_changed, | 989 | .otherend_changed = backend_changed, |
990 | .is_ready = blkfront_is_ready, | ||
980 | }; | 991 | }; |
981 | 992 | ||
982 | static int __init xlblk_init(void) | 993 | static int __init xlblk_init(void) |