|
@@ -1215,11 +1215,12 @@ static inline void changed_ioprio(struct cfq_io_context *cic)
|
|
|
{
|
|
|
struct cfq_data *cfqd = cic->key;
|
|
|
struct cfq_queue *cfqq;
|
|
|
+ unsigned long flags;
|
|
|
|
|
|
if (unlikely(!cfqd))
|
|
|
return;
|
|
|
|
|
|
- spin_lock(cfqd->queue->queue_lock);
|
|
|
+ spin_lock_irqsave(cfqd->queue->queue_lock, flags);
|
|
|
|
|
|
cfqq = cic->cfqq[ASYNC];
|
|
|
if (cfqq) {
|
|
@@ -1236,7 +1237,7 @@ static inline void changed_ioprio(struct cfq_io_context *cic)
|
|
|
if (cfqq)
|
|
|
cfq_mark_cfqq_prio_changed(cfqq);
|
|
|
|
|
|
- spin_unlock(cfqd->queue->queue_lock);
|
|
|
+ spin_unlock_irqrestore(cfqd->queue->queue_lock, flags);
|
|
|
}
|
|
|
|
|
|
static void cfq_ioc_set_ioprio(struct io_context *ioc)
|