Merge tag 'locking-urgent-2020-08-10' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-microblaze.git] / block / blk-iocost.c
index 521c29b..413e0b5 100644 (file)
@@ -406,7 +406,7 @@ struct ioc {
        enum ioc_running                running;
        atomic64_t                      vtime_rate;
 
-       seqcount_t                      period_seqcount;
+       seqcount_spinlock_t             period_seqcount;
        u32                             period_at;      /* wallclock starttime */
        u64                             period_at_vtime; /* vtime starttime */
 
@@ -873,7 +873,6 @@ static void ioc_now(struct ioc *ioc, struct ioc_now *now)
 
 static void ioc_start_period(struct ioc *ioc, struct ioc_now *now)
 {
-       lockdep_assert_held(&ioc->lock);
        WARN_ON_ONCE(ioc->running != IOC_RUNNING);
 
        write_seqcount_begin(&ioc->period_seqcount);
@@ -2001,7 +2000,7 @@ static int blk_iocost_init(struct request_queue *q)
 
        ioc->running = IOC_IDLE;
        atomic64_set(&ioc->vtime_rate, VTIME_PER_USEC);
-       seqcount_init(&ioc->period_seqcount);
+       seqcount_spinlock_init(&ioc->period_seqcount, &ioc->lock);
        ioc->period_at = ktime_to_us(ktime_get());
        atomic64_set(&ioc->cur_period, 0);
        atomic_set(&ioc->hweight_gen, 0);