aboutsummaryrefslogtreecommitdiffstats
path: root/fs/partitions
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-10-25 10:45:10 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-10-25 10:45:10 -0400
commit8e775167d54e6521e7cdbc03ee7ec42a8c67b49a (patch)
treea49914306fb28505c6e21a456df8bdc40d6eac23 /fs/partitions
parent4b37ba90f49d4157ac5628f8d730d3505f176724 (diff)
parentf253b86b4ad1b3220544e75880510fd455ebd23f (diff)
Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
* 'for-linus' of git://git.kernel.dk/linux-2.6-block: Revert "block: fix accounting bug on cross partition merges"
Diffstat (limited to 'fs/partitions')
-rw-r--r--fs/partitions/check.c12
1 files changed, 0 insertions, 12 deletions
diff --git a/fs/partitions/check.c b/fs/partitions/check.c
index b81bfc016a05..0a8b0ad0c7e2 100644
--- a/fs/partitions/check.c
+++ b/fs/partitions/check.c
@@ -365,25 +365,17 @@ struct device_type part_type = {
365static void delete_partition_rcu_cb(struct rcu_head *head) 365static void delete_partition_rcu_cb(struct rcu_head *head)
366{ 366{
367 struct hd_struct *part = container_of(head, struct hd_struct, rcu_head); 367 struct hd_struct *part = container_of(head, struct hd_struct, rcu_head);
368 struct gendisk *disk = part_to_disk(part);
369 struct request_queue *q = disk->queue;
370 unsigned long flags;
371 368
372 part->start_sect = 0; 369 part->start_sect = 0;
373 part->nr_sects = 0; 370 part->nr_sects = 0;
374 part_stat_set_all(part, 0); 371 part_stat_set_all(part, 0);
375 put_device(part_to_dev(part)); 372 put_device(part_to_dev(part));
376
377 spin_lock_irqsave(q->queue_lock, flags);
378 elv_quiesce_end(q);
379 spin_unlock_irqrestore(q->queue_lock, flags);
380} 373}
381 374
382void delete_partition(struct gendisk *disk, int partno) 375void delete_partition(struct gendisk *disk, int partno)
383{ 376{
384 struct disk_part_tbl *ptbl = disk->part_tbl; 377 struct disk_part_tbl *ptbl = disk->part_tbl;
385 struct hd_struct *part; 378 struct hd_struct *part;
386 struct request_queue *q = disk->queue;
387 379
388 if (partno >= ptbl->len) 380 if (partno >= ptbl->len)
389 return; 381 return;
@@ -398,10 +390,6 @@ void delete_partition(struct gendisk *disk, int partno)
398 kobject_put(part->holder_dir); 390 kobject_put(part->holder_dir);
399 device_del(part_to_dev(part)); 391 device_del(part_to_dev(part));
400 392
401 spin_lock_irq(q->queue_lock);
402 elv_quiesce_start(q);
403 spin_unlock_irq(q->queue_lock);
404
405 call_rcu(&part->rcu_head, delete_partition_rcu_cb); 393 call_rcu(&part->rcu_head, delete_partition_rcu_cb);
406} 394}
407 395