diff options
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/Kconfig | 1 | ||||
-rw-r--r-- | drivers/block/aoe/aoecmd.c | 6 | ||||
-rw-r--r-- | drivers/block/floppy.c | 4 | ||||
-rw-r--r-- | drivers/block/xen-blkfront.c | 4 |
4 files changed, 8 insertions, 7 deletions
diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig index 4b9359a6f6ca..83c32cb72582 100644 --- a/drivers/block/Kconfig +++ b/drivers/block/Kconfig | |||
@@ -464,6 +464,7 @@ config XEN_BLKDEV_FRONTEND | |||
464 | tristate "Xen virtual block device support" | 464 | tristate "Xen virtual block device support" |
465 | depends on XEN | 465 | depends on XEN |
466 | default y | 466 | default y |
467 | select XEN_XENBUS_FRONTEND | ||
467 | help | 468 | help |
468 | This driver implements the front-end of the Xen virtual | 469 | This driver implements the front-end of the Xen virtual |
469 | block device driver. It communicates with a back-end driver | 470 | block device driver. It communicates with a back-end driver |
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c index 5674bd01d96d..de0435e63b02 100644 --- a/drivers/block/aoe/aoecmd.c +++ b/drivers/block/aoe/aoecmd.c | |||
@@ -297,8 +297,8 @@ aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor, struct sk_buff_head *qu | |||
297 | struct sk_buff *skb; | 297 | struct sk_buff *skb; |
298 | struct net_device *ifp; | 298 | struct net_device *ifp; |
299 | 299 | ||
300 | read_lock(&dev_base_lock); | 300 | rcu_read_lock(); |
301 | for_each_netdev(&init_net, ifp) { | 301 | for_each_netdev_rcu(&init_net, ifp) { |
302 | dev_hold(ifp); | 302 | dev_hold(ifp); |
303 | if (!is_aoe_netif(ifp)) | 303 | if (!is_aoe_netif(ifp)) |
304 | goto cont; | 304 | goto cont; |
@@ -325,7 +325,7 @@ aoecmd_cfg_pkts(ushort aoemajor, unsigned char aoeminor, struct sk_buff_head *qu | |||
325 | cont: | 325 | cont: |
326 | dev_put(ifp); | 326 | dev_put(ifp); |
327 | } | 327 | } |
328 | read_unlock(&dev_base_lock); | 328 | rcu_read_unlock(); |
329 | } | 329 | } |
330 | 330 | ||
331 | static void | 331 | static void |
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index 3951020e494a..25e4dffa0aad 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c | |||
@@ -4352,7 +4352,7 @@ static int __init floppy_init(void) | |||
4352 | out_unreg_platform_dev: | 4352 | out_unreg_platform_dev: |
4353 | platform_device_unregister(&floppy_device[drive]); | 4353 | platform_device_unregister(&floppy_device[drive]); |
4354 | out_flush_work: | 4354 | out_flush_work: |
4355 | flush_scheduled_work(); | 4355 | flush_work_sync(&floppy_work); |
4356 | if (atomic_read(&usage_count)) | 4356 | if (atomic_read(&usage_count)) |
4357 | floppy_release_irq_and_dma(); | 4357 | floppy_release_irq_and_dma(); |
4358 | out_unreg_region: | 4358 | out_unreg_region: |
@@ -4422,7 +4422,7 @@ static int floppy_grab_irq_and_dma(void) | |||
4422 | * We might have scheduled a free_irq(), wait it to | 4422 | * We might have scheduled a free_irq(), wait it to |
4423 | * drain first: | 4423 | * drain first: |
4424 | */ | 4424 | */ |
4425 | flush_scheduled_work(); | 4425 | flush_work_sync(&floppy_work); |
4426 | 4426 | ||
4427 | if (fd_request_irq()) { | 4427 | if (fd_request_irq()) { |
4428 | DPRINT("Unable to grab IRQ%d for the floppy driver\n", | 4428 | DPRINT("Unable to grab IRQ%d for the floppy driver\n", |
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index 657873e4328d..d7aa39e349a6 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c | |||
@@ -547,7 +547,7 @@ static void xlvbd_release_gendisk(struct blkfront_info *info) | |||
547 | spin_unlock_irqrestore(&blkif_io_lock, flags); | 547 | spin_unlock_irqrestore(&blkif_io_lock, flags); |
548 | 548 | ||
549 | /* Flush gnttab callback work. Must be done with no locks held. */ | 549 | /* Flush gnttab callback work. Must be done with no locks held. */ |
550 | flush_scheduled_work(); | 550 | flush_work_sync(&info->work); |
551 | 551 | ||
552 | del_gendisk(info->gd); | 552 | del_gendisk(info->gd); |
553 | 553 | ||
@@ -596,7 +596,7 @@ static void blkif_free(struct blkfront_info *info, int suspend) | |||
596 | spin_unlock_irq(&blkif_io_lock); | 596 | spin_unlock_irq(&blkif_io_lock); |
597 | 597 | ||
598 | /* Flush gnttab callback work. Must be done with no locks held. */ | 598 | /* Flush gnttab callback work. Must be done with no locks held. */ |
599 | flush_scheduled_work(); | 599 | flush_work_sync(&info->work); |
600 | 600 | ||
601 | /* Free resources associated with old device channel. */ | 601 | /* Free resources associated with old device channel. */ |
602 | if (info->ring_ref != GRANT_INVALID_REF) { | 602 | if (info->ring_ref != GRANT_INVALID_REF) { |