diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index 4e86393..34493d7 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -2317,6 +2317,7 @@ static void blkfront_connect(struct blkfront_info *info) unsigned int binfo; char *envp[] = { "RESIZE=1", NULL }; int err, i; + int removable; switch (info->connected) { case BLKIF_STATE_CONNECTED: @@ -2384,6 +2385,12 @@ static void blkfront_connect(struct blkfront_info *info) } } + err = xenbus_gather(XBT_NIL, info->xbdev->otherend, + "removable", "%d", &removable, + NULL); + if (!err && removable) + binfo |= VDISK_REMOVABLE; + err = xlvbd_alloc_gendisk(sectors, info, binfo, sector_size, physical_sector_size); if (err) {