diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-20 13:28:51 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-20 13:28:51 -0500 |
commit | a90779bfc83b7489270a8ce2c3fc9df20dac2b24 (patch) | |
tree | 53a41d0e419024619c621facb2baf6e782e16f35 /drivers | |
parent | 7705a8792b0fc82fd7d4dd923724606bbfd9fb20 (diff) | |
parent | e572ec7e4e432de7ecf7bd2e62117646fa64e518 (diff) |
Merge branch 'block-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/block
* 'block-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/block:
[PATCH] fix rmmod problems with elevator attributes, clean them up
[PATCH] elevator_t lifetime rules and sysfs fixes
[PATCH] noise removal: cfq-iosched.c
[PATCH] don't bother with refcounting for cfq_data
[PATCH] fix sysfs interaction and lifetime rules handling for queues
[PATCH] regularize blk_cleanup_queue() use
[PATCH] fix cfq_get_queue()/ioprio_set(2) races
[PATCH] deal with rmmod/put_io_context() races
[PATCH] stop elv_unregister() from rogering other iosched's data, fix locking
[PATCH] stop cfq from pinning queue down
[PATCH] make cfq_exit_queue() prune the cfq_io_context for that queue
[PATCH] fix the exclusion for ioprio_set()
[PATCH] keep sync and async cfq_queue separate
[PATCH] switch to use of ->key to get cfq_data by cfq_io_context
[PATCH] stop leaking cfq_data in cfq_set_request()
[PATCH] fix cfq hash lookups
[PATCH] fix locking in queue_requests_store()
[PATCH] fix double-free in blk_init_queue_node()
[PATCH] don't do exit_io_context() until we know we won't be doing any IO
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/block/loop.c | 4 | ||||
-rw-r--r-- | drivers/block/pktcdvd.c | 4 | ||||
-rw-r--r-- | drivers/block/umem.c | 2 | ||||
-rw-r--r-- | drivers/md/dm.c | 4 | ||||
-rw-r--r-- | drivers/md/md.c | 5 | ||||
-rw-r--r-- | drivers/s390/block/dcssblk.c | 8 |
6 files changed, 15 insertions, 12 deletions
diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 5f6d1a5cce11..0010704739e3 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c | |||
@@ -1307,7 +1307,7 @@ static int __init loop_init(void) | |||
1307 | 1307 | ||
1308 | out_mem4: | 1308 | out_mem4: |
1309 | while (i--) | 1309 | while (i--) |
1310 | blk_put_queue(loop_dev[i].lo_queue); | 1310 | blk_cleanup_queue(loop_dev[i].lo_queue); |
1311 | devfs_remove("loop"); | 1311 | devfs_remove("loop"); |
1312 | i = max_loop; | 1312 | i = max_loop; |
1313 | out_mem3: | 1313 | out_mem3: |
@@ -1328,7 +1328,7 @@ static void loop_exit(void) | |||
1328 | 1328 | ||
1329 | for (i = 0; i < max_loop; i++) { | 1329 | for (i = 0; i < max_loop; i++) { |
1330 | del_gendisk(disks[i]); | 1330 | del_gendisk(disks[i]); |
1331 | blk_put_queue(loop_dev[i].lo_queue); | 1331 | blk_cleanup_queue(loop_dev[i].lo_queue); |
1332 | put_disk(disks[i]); | 1332 | put_disk(disks[i]); |
1333 | } | 1333 | } |
1334 | devfs_remove("loop"); | 1334 | devfs_remove("loop"); |
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index bc9b2bcd7dba..476a5b553f34 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c | |||
@@ -2514,7 +2514,7 @@ static int pkt_setup_dev(struct pkt_ctrl_command *ctrl_cmd) | |||
2514 | return 0; | 2514 | return 0; |
2515 | 2515 | ||
2516 | out_new_dev: | 2516 | out_new_dev: |
2517 | blk_put_queue(disk->queue); | 2517 | blk_cleanup_queue(disk->queue); |
2518 | out_mem2: | 2518 | out_mem2: |
2519 | put_disk(disk); | 2519 | put_disk(disk); |
2520 | out_mem: | 2520 | out_mem: |
@@ -2555,7 +2555,7 @@ static int pkt_remove_dev(struct pkt_ctrl_command *ctrl_cmd) | |||
2555 | DPRINTK("pktcdvd: writer %s unmapped\n", pd->name); | 2555 | DPRINTK("pktcdvd: writer %s unmapped\n", pd->name); |
2556 | 2556 | ||
2557 | del_gendisk(pd->disk); | 2557 | del_gendisk(pd->disk); |
2558 | blk_put_queue(pd->disk->queue); | 2558 | blk_cleanup_queue(pd->disk->queue); |
2559 | put_disk(pd->disk); | 2559 | put_disk(pd->disk); |
2560 | 2560 | ||
2561 | pkt_devs[idx] = NULL; | 2561 | pkt_devs[idx] = NULL; |
diff --git a/drivers/block/umem.c b/drivers/block/umem.c index 4ada1268b40d..c16e66b9c7a7 100644 --- a/drivers/block/umem.c +++ b/drivers/block/umem.c | |||
@@ -1131,7 +1131,7 @@ static void mm_pci_remove(struct pci_dev *dev) | |||
1131 | pci_free_consistent(card->dev, PAGE_SIZE*2, | 1131 | pci_free_consistent(card->dev, PAGE_SIZE*2, |
1132 | card->mm_pages[1].desc, | 1132 | card->mm_pages[1].desc, |
1133 | card->mm_pages[1].page_dma); | 1133 | card->mm_pages[1].page_dma); |
1134 | blk_put_queue(card->queue); | 1134 | blk_cleanup_queue(card->queue); |
1135 | } | 1135 | } |
1136 | 1136 | ||
1137 | static const struct pci_device_id mm_pci_ids[] = { { | 1137 | static const struct pci_device_id mm_pci_ids[] = { { |
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 745ca1f67b14..88d60202b9db 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c | |||
@@ -840,7 +840,7 @@ static struct mapped_device *alloc_dev(unsigned int minor, int persistent) | |||
840 | bad3: | 840 | bad3: |
841 | mempool_destroy(md->io_pool); | 841 | mempool_destroy(md->io_pool); |
842 | bad2: | 842 | bad2: |
843 | blk_put_queue(md->queue); | 843 | blk_cleanup_queue(md->queue); |
844 | free_minor(minor); | 844 | free_minor(minor); |
845 | bad1: | 845 | bad1: |
846 | kfree(md); | 846 | kfree(md); |
@@ -860,7 +860,7 @@ static void free_dev(struct mapped_device *md) | |||
860 | del_gendisk(md->disk); | 860 | del_gendisk(md->disk); |
861 | free_minor(minor); | 861 | free_minor(minor); |
862 | put_disk(md->disk); | 862 | put_disk(md->disk); |
863 | blk_put_queue(md->queue); | 863 | blk_cleanup_queue(md->queue); |
864 | kfree(md); | 864 | kfree(md); |
865 | } | 865 | } |
866 | 866 | ||
diff --git a/drivers/md/md.c b/drivers/md/md.c index d05e3125d298..5ed2228745cb 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -213,8 +213,11 @@ static void mddev_put(mddev_t *mddev) | |||
213 | return; | 213 | return; |
214 | if (!mddev->raid_disks && list_empty(&mddev->disks)) { | 214 | if (!mddev->raid_disks && list_empty(&mddev->disks)) { |
215 | list_del(&mddev->all_mddevs); | 215 | list_del(&mddev->all_mddevs); |
216 | blk_put_queue(mddev->queue); | 216 | /* that blocks */ |
217 | blk_cleanup_queue(mddev->queue); | ||
218 | /* that also blocks */ | ||
217 | kobject_unregister(&mddev->kobj); | 219 | kobject_unregister(&mddev->kobj); |
220 | /* result blows... */ | ||
218 | } | 221 | } |
219 | spin_unlock(&all_mddevs_lock); | 222 | spin_unlock(&all_mddevs_lock); |
220 | } | 223 | } |
diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c index 2e727f49ad19..44133250da2e 100644 --- a/drivers/s390/block/dcssblk.c +++ b/drivers/s390/block/dcssblk.c | |||
@@ -273,7 +273,7 @@ removeseg: | |||
273 | list_del(&dev_info->lh); | 273 | list_del(&dev_info->lh); |
274 | 274 | ||
275 | del_gendisk(dev_info->gd); | 275 | del_gendisk(dev_info->gd); |
276 | blk_put_queue(dev_info->dcssblk_queue); | 276 | blk_cleanup_queue(dev_info->dcssblk_queue); |
277 | dev_info->gd->queue = NULL; | 277 | dev_info->gd->queue = NULL; |
278 | put_disk(dev_info->gd); | 278 | put_disk(dev_info->gd); |
279 | device_unregister(dev); | 279 | device_unregister(dev); |
@@ -491,7 +491,7 @@ dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char | |||
491 | unregister_dev: | 491 | unregister_dev: |
492 | PRINT_ERR("device_create_file() failed!\n"); | 492 | PRINT_ERR("device_create_file() failed!\n"); |
493 | list_del(&dev_info->lh); | 493 | list_del(&dev_info->lh); |
494 | blk_put_queue(dev_info->dcssblk_queue); | 494 | blk_cleanup_queue(dev_info->dcssblk_queue); |
495 | dev_info->gd->queue = NULL; | 495 | dev_info->gd->queue = NULL; |
496 | put_disk(dev_info->gd); | 496 | put_disk(dev_info->gd); |
497 | device_unregister(&dev_info->dev); | 497 | device_unregister(&dev_info->dev); |
@@ -505,7 +505,7 @@ list_del: | |||
505 | unload_seg: | 505 | unload_seg: |
506 | segment_unload(local_buf); | 506 | segment_unload(local_buf); |
507 | dealloc_gendisk: | 507 | dealloc_gendisk: |
508 | blk_put_queue(dev_info->dcssblk_queue); | 508 | blk_cleanup_queue(dev_info->dcssblk_queue); |
509 | dev_info->gd->queue = NULL; | 509 | dev_info->gd->queue = NULL; |
510 | put_disk(dev_info->gd); | 510 | put_disk(dev_info->gd); |
511 | free_dev_info: | 511 | free_dev_info: |
@@ -562,7 +562,7 @@ dcssblk_remove_store(struct device *dev, struct device_attribute *attr, const ch | |||
562 | list_del(&dev_info->lh); | 562 | list_del(&dev_info->lh); |
563 | 563 | ||
564 | del_gendisk(dev_info->gd); | 564 | del_gendisk(dev_info->gd); |
565 | blk_put_queue(dev_info->dcssblk_queue); | 565 | blk_cleanup_queue(dev_info->dcssblk_queue); |
566 | dev_info->gd->queue = NULL; | 566 | dev_info->gd->queue = NULL; |
567 | put_disk(dev_info->gd); | 567 | put_disk(dev_info->gd); |
568 | device_unregister(&dev_info->dev); | 568 | device_unregister(&dev_info->dev); |