x86/speculation: Support 'mitigations=' cmdline option
[linux-2.6-microblaze.git] / block / partition-generic.c
index d3d14e8..8e596a8 100644 (file)
@@ -120,13 +120,9 @@ ssize_t part_stat_show(struct device *dev,
 {
        struct hd_struct *p = dev_to_part(dev);
        struct request_queue *q = part_to_disk(p)->queue;
-       unsigned int inflight[2];
-       int cpu;
+       unsigned int inflight;
 
-       cpu = part_stat_lock();
-       part_round_stats(q, cpu, p);
-       part_stat_unlock();
-       part_in_flight(q, p, inflight);
+       inflight = part_in_flight(q, p);
        return sprintf(buf,
                "%8lu %8lu %8llu %8u "
                "%8lu %8lu %8llu %8u "
@@ -141,7 +137,7 @@ ssize_t part_stat_show(struct device *dev,
                part_stat_read(p, merges[STAT_WRITE]),
                (unsigned long long)part_stat_read(p, sectors[STAT_WRITE]),
                (unsigned int)part_stat_read_msecs(p, STAT_WRITE),
-               inflight[0],
+               inflight,
                jiffies_to_msecs(part_stat_read(p, io_ticks)),
                jiffies_to_msecs(part_stat_read(p, time_in_queue)),
                part_stat_read(p, ios[STAT_DISCARD]),
@@ -249,9 +245,10 @@ struct device_type part_type = {
        .uevent         = part_uevent,
 };
 
-static void delete_partition_rcu_cb(struct rcu_head *head)
+static void delete_partition_work_fn(struct work_struct *work)
 {
-       struct hd_struct *part = container_of(head, struct hd_struct, rcu_head);
+       struct hd_struct *part = container_of(to_rcu_work(work), struct hd_struct,
+                                       rcu_work);
 
        part->start_sect = 0;
        part->nr_sects = 0;
@@ -262,7 +259,8 @@ static void delete_partition_rcu_cb(struct rcu_head *head)
 void __delete_partition(struct percpu_ref *ref)
 {
        struct hd_struct *part = container_of(ref, struct hd_struct, ref);
-       call_rcu(&part->rcu_head, delete_partition_rcu_cb);
+       INIT_RCU_WORK(&part->rcu_work, delete_partition_work_fn);
+       queue_rcu_work(system_wq, &part->rcu_work);
 }
 
 /*